728x90
반응형
추상 클래스 (abstract class)
abstract 키워드를 사용하여 클래스를 선언하면 해당 클래스로는 객체를 생성하는 것이 불가능하다.
abstract을 통해서 해당 단계에서 구현할 내용이 없을 때 구현 없이 클래스의 구조만을 선언하는 것이 가능하다.
추상 클래스는 해당 클래스가 아직 미완성이거나 상속을 위해서 빈 클래스가 필요할 때 사용된다.
abstract class Shape {
// 빈 추상 클래스
}
추상 메서드 (abstract method)
추상 메서드는 추상 클래스안에 선언할 수 있는 메서드로 정의가 없고 선언만 되어 있다.
추상 메서드를 포함한 클래스는 하위 클래스에서 반드시 이 추상 메서드를 오버라이딩(정의)해주어야 한다.
abstract class Animal {
abstract void makeSound();
public void eat() {
System.out.println("This animal is eating.");
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("Bark");
}
}
class Cat extends Animal {
@Override
void makeSound() {
System.out.println("Meow");
}
}
추상 메서드에는 강제성도 동반되는데 만약 아래 코드처럼 오버라이딩을 하지 않았다면 이는 컴파일이 불가능하다.
abstract class Animal {
public void eat() {
System.out.println("This animal is eating.");
}
}
class Dog extends Animal {
void makeSound() {
System.out.println("Bark");
}
}
class Cat extends Animal {
// 실수로 makeSound()를 빠뜨렸다고 가정
}
728x90
반응형
'Java > Java 문법' 카테고리의 다른 글
[Java] 오브젝트 클래스 (Object Class) (0) | 2024.10.11 |
---|---|
[Java] final (0) | 2024.10.11 |
[Java] super, super 생성자 (0) | 2024.10.02 |
[Java] 업캐스팅 (UpCasting), 다운캐스팅 (DownCasting) (0) | 2024.10.01 |
[Java] 오버라이딩 (Overriding) (0) | 2024.10.01 |