백엔드/Java

Java 추상 클래스(abstract)

짱뚱짱 2024. 10. 8. 09:00

📢 추상 클래스?

- 완전한 클래스가 아닌 미완성 클래스.

- 하나 이상의 추상 메서드를 포함할 수 있으며, 이 메서드는 구현이 없는 메서드이다.

- 추상 클래스를 직접 인스턴스화할 수는 없으며, 반드시 하위 클래스에서 추상 메서드를 구현해야 객체를 생성할 수 있다.

 

📢 추상 메서드?

- 메서드의 선언부만 존재하고, 본체(구현)는 없다. 하위 클래스에서 반드시 구현해야 함.

abstract public void howl();

 

📢 실습

abstract class Animal1 {
    protected String name;
    protected String category;
    
    public void printInfo() {
        System.out.println(name + "(" + category + ")");
    }
    
    abstract public void howl(); // 추상 메서드
}

class Dog1 extends Animal1 {
    private String eat; // 먹이 종류
    
    public Dog1(String name, String category) {
        super.name = name;
        super.category = category;
    }
    
    @Override
    public void howl() {
        System.out.println("울음소리 > 멍멍~!!");
    }

    public void eating(String eat) {
        this.eat = eat;
        System.out.println(name + "는 " + eat + "를 좋아합니다.");
    }
}

public class Abstract01 {
    public static void main(String[] args) {
        Dog1 d = new Dog1("뚱띠", "개과");
        d.printInfo();
        d.howl();
        d.eating("닭고기");
    }
}

 

구성 요소: 추상 클래스는 멤버 변수, 상수(final), 일반 메서드, 추상 메서드로 구성될 수 있습니다.

상속: 추상 클래스는 주로 상속을 위해 사용되며, 하위 클래스에서 추상 메서드를 반드시 구현해야 합니다.

 


 

추상 클래스를 통해 코드의 뼈대를 세우고, 하위 클래스에서 생동감을 불어넣어
유연하면서도 강력한 설계를 구현할 수 있다!