public class TestBoss {
public static void main(String[] args) {
Worker duck = new Worker();
(Boss) duck.type();
}
public class Boss{
//stuff
}
public class Worker extends Boss{
public void type(){
//stuff
}
}
如果有一个叫做 boss 的父类(super class)和一个叫做 worker 的子类。那么如果有一个测试类需要使用worker类中的一个方法。本例中的对象 duck 被类型转换为 Boss/但在代码中,类型方法只能在 worker 类中使用,而不能在 boss 类中使用。然而 java 要求 Boss 类包含类型方法,即使它没有被使用。如何使方法只在 worker 类中声明,或者 boss 类是否需要一个基本上什么都不做的填充方法?
最佳答案
如果只有 Worker
公开方法 type()
那么您需要在使用它之前将您的对象转换回 Worker
。例如
Worker duck = new Worker();
...
Boss boss = (Boss)duck;
...
if (boss instanceof Worker) // check in case you don't know 100% if boss is actually a worker
{
(Worker)boss.type();
}
关于java - Java 中的继承和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9629999/