【发布时间】:2011-08-26 03:23:18
【问题描述】:
有时,我遇到了一些如下的类设计。
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 的子类。更喜欢将非叶类抽象化。