JAVA의 추상클래스와 추상메서드

 

 

추상클래스(Abstract Classes)

Java의 추상 클래스는 자체적으로 인스턴스화할 수 없지만 다른 클래스의 청사진 역할을 할 수 있는 클래스입니다. 서브클래싱을 의미하는 클래스이며 일반(구체적) 메서드와 추상 메서드가 혼합되어 포함될 수 있습니다. 관련 클래스 그룹에 대한 공통 인터페이스를 정의하려는 경우 추상 클래스가 사용됩니다.

 

 

추상 클래스 선언

클래스 선언에서 abstract 키워드를 사용하여 추상 클래스를 선언할 수 있습니다.

abstract class Shape {
    abstract void draw();  // Abstract method with no implementation
}

 

추상 메서드

추상 메서드는 추상 클래스에서 선언되었지만 추상 클래스 자체에는 구현이 없는 메서드입니다. 모든 추상 메서드에 대한 구현을 제공하려면 추상 클래스의 하위 클래스가 필요합니다.

 

구현 방법

추상 클래스에는 구현이 있는 일반(구체적인) 메서드도 포함될 수 있습니다. 이러한 메서드는 수정하지 않고 하위 클래스에서 상속할 수 있습니다.

 

비 인스턴스화

new 키워드를 사용하여 추상 클래스의 인스턴스를 만들 수 없습니다. 추상 클래스를 확장하고 구체적인 하위 클래스에서 해당 추상 메서드에 대한 구현을 제공해야 합니다.

 

하위 분류

추상 클래스의 하위 클래스는 상위 클래스에서 상속된 모든 추상 메서드에 대한 구현을 제공하거나 추상 클래스로 선언되어야 합니다.

 

추상 메서드(Abstract Methods)

추상 메서드는 추상 클래스에서 선언되었지만 해당 클래스에 구현이 없는 메서드입니다. 본질적으로 메서드 본문이 없는 메서드 서명입니다. 각 추상 메서드에 대한 구체적인 구현을 제공하려면 추상 클래스의 하위 클래스가 필요합니다.

 

추상 메서드 선언

추상 메서드는 abstract 키워드를 사용하여 선언되며 메서드 본문을 포함하지 않습니다.

abstract void draw();  // Abstract method declaration

 

하위 클래스에서 구현

추상 클래스를 확장하는 하위 클래스는 수퍼 클래스에서 상속된 각 추상 메서드에 대한 구체적인 구현을 제공해야 합니다.

class Circle extends Shape {
    void draw() {
        // Implementation of the draw method for Circle
    }
}

 

재정의(Override Annotation)

서브클래스에서 추상 메서드를 구현할 때 @Override 주석을 사용하여 수퍼클래스에서 메서드를 올바르게 오버라이드하는지 확인해야 합니다.

class Circle extends Shape {
    @Override
    void draw() {
        // Implementation of the draw method for Circle
    }
}

 

 

추상 클래스 및 메서드를 사용하면 관련 클래스 그룹에 대한 공통 구조 및 동작을 정의하는 동시에 특정 구현 세부 정보는 하위 클래스에 남겨 둘 수 있습니다. Java 프로그램에서 추상화와 상속을 모두 달성하기 위한 중요한 도구입니다.