8. abstract 키워드
1. abstract 키워드
Animal.java
class Animal {
void sing() {
// ...
}
}각 동물이 목소리를 내는 구체적인 코드는 각각의 동물이 가진 성격에 따라 달라질 수 있기 때문에 Animal 클래스로부터 메서드를 오버라이딩하여 각각의 방식대로 구현
Dog 클래스
Dog.java
class Dog extends Animal {
void sing() {
System.out.println("멍멍");
}
}Cat 클래스
Cat.java
class Cat extends Animal {
System.out.println("야옹");
}그런데 동물은 어떻게 울지?
class Animal {
void sing() {
// ??
}
}동물(Animal)이 우는 것에 대한 부분은 억지로 구현을 할 필요는 없을 것 같아서 별도로 구현을 하지 않기 위해 메서드의 구현부를 제거할 경우 컴파일 에러가 발생하게됨
public class Animal {
void sing(); // ERROR.
}→ 기본적으로 class 내 작성된 메서드는 구현이 완료되지 않을 경우, 인스턴스가 생성되었을 때 해당 메서드가 호출되면 수행할 동작이 없기 때문에 필수적으로 구현해야함
Last updated on