有时候,我会遇到一些如下所示的类设计。
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
类?为什么我们要将非抽象的speak方法再次转换为抽象的speak方法?
这是为了提供一个基础类,其他狗的类可以继承并实现自己的具体方法。通过使用抽象方法,我们可以确保所有子类都实现了相同的方法,并且它们都遵循相同的方法签名。