추상 메소드와 추상 클래스

JH·2024년 2월 7일

java

목록 보기
7/21

추상 메소드(Abstract Method)

추상 메소드는 선언만 있고 구현 내용이 없는 메소드를 의미한다. 이러한 메소드는 자식 클래스에서 반드시 오버라이딩(재정의)되어야 한다.

abstract void print();

위의 예시에서 print() 메소드는 추상 메소드로 선언되어 있다. 이 메소드는 구현 내용이 없으며, 자식 클래스에서 반드시 구현되어야 한다.

추상 클래스(Abstract Class)

추상 클래스는 하나 이상의 추상 메소드를 포함하는 클래스이다. 추상 클래스는 추상 메소드를 가질 수 있을 뿐만 아니라 일반 메소드도 가질 수 있다.

abstract class AbstractClass {
    abstract void print(); // 추상 메소드
    
    void display() { // 일반 메소드
        System.out.println("This is a display method.");
    }
}

추상 클래스는 반드시 구현해야 하는 부분에 대해 명시적으로 표현할 수 있다. 하지만 추상 클래스 자체로는 객체를 생성할 수 없다.

추상 클래스와 상속

추상 클래스를 상속받는 자식 클래스는 추상 클래스의 추상 메소드를 반드시 구현해야 한다. 만약 자식 클래스가 추상 메소드를 구현하지 않는다면, 그 자식 클래스도 추상 클래스가 된다.

abstract class AbstractClass {
    abstract void print();
}

class ChildClass extends AbstractClass {
    void print() {
        System.out.println("Printing from ChildClass");
    }
}

위의 예시에서 ChildClass는 AbstractClass를 상속받고 있으며, print() 메소드를 오버라이딩하여 구현하고 있다. 이렇게 자식 클래스에서 추상 메소드를 구현함으로써 추상 클래스를 실체화할 수 있다.

profile
발전하는 백엔드 개발자

0개의 댓글