[JAVA] 추상화 클래스

공통된 특성과 기능을 정의하는 것입니다. 추상 클래스는 직접 인스턴스화하지 못합니다.

abstract 제어자를 이용하여 추상화를 만듭니다.

 

추상 클래스의 특징

  1. 공통된 특성 : 서로 다른 클래스들이 가지는 공통된 특성과 기능을 하나로 묶어 추출합니다. 일반 메서드와 추상 메서드를 정의할 수 있습니다.
  2. 추상 메서드 : 구현 내용이 없는 메서드로 하위 클래스에서 반드시 오버라이딩하여 구현해야 합니다. 
  3. 인스턴스화 : 추상클래스는 직접 인스턴스화를 할 수 없습니다. 추상 클래스를 상속한 하위 클래스로 객체를 생성해야 합니다.

추상클래스 예제

abstract class Animal {
    String type;
    
    abstract void makeSound();
    
    void getType() {
        System.out.println(this.type);
    }
}

class Dog extends Animal {
    Dog(String name) {
        super.type = name;
    }

    @Override
    void makeSound() {
        System.out.println("멍멍");
    }
}

public class Main {

    public static void main(String[] args) {
        Animal animal = new Dog("dog");
        animal.getType(); // dog
        animal.makeSound(); // 멍멍
    }

}

 

'JAVA > 객체 지향 프로그래밍' 카테고리의 다른 글

[JAVA] 캡슐화  (0) 2023.08.20
[JAVA] 인터페이스  (0) 2023.08.20
[JAVA] 업캐스팅 & 다운캐스팅  (0) 2023.08.19
[JAVA] 다형성이란  (0) 2023.08.19
[JAVA] 메서드 오버라이딩 조건  (0) 2023.08.18