때로는 다음과 같이 몇 가지 클래스 디자인을 접하게되었습니다.구체적인 부모를 확장 시켜서 추상적 인 아이를 가지기위한 목적
abstract class animal {
public abstract void speak();
}
class dog extends animal {
@Override
public void speak() {
// Do something.
}
}
abstract class abstract_dog extends dog {
@Override
public abstract void speak();
}
궁금 해서요, abstract_dog
클래스를 갖는 목적은 무엇인가? 왜 우리는 비 추상적 인 말하기 방법을 추상적으로 바꾸는가?
참고 : 클래스 계층 구조를 제어하는 경우 더 나은 방법은 구체적 개 클래스를 완전히 제거하거나 하위 클래스로 abstract_dog를 사용하는 것입니다. 비 리프 클래스 추상화를 선호합니다. –