【发布时间】:2021-06-24 15:14:33
【问题描述】:
是否可以使用接口对象访问实现接口的类对象的字段或函数?
例如:
public interface Node { // reference to all my trucks
void collect(Package p);
void deliver(Package p);
void work();
}
public class Truck implements Node{...}
public class Van extends Truck {...}
public class Tracking {
private Node node;
@Override
public String toString() {
return "time:" + time + " " + node + ", status=" + status;
}
}
我尝试从另一个类打印 Tracking 并让节点成为 Van 类的特定函数,但节点只返回 van 函数的 toString。而且我无法使用其他功能。
for (int i = 0; i < this.tracking.size(); i++) {
System.out.println(this.tracking.get(i));
}
访问 truckID 字段的主要问题
我希望能解释一下如何解决这个问题。
【问题讨论】:
-
当您使用
println时,默认的toString会被调用,但您可以尝试显式调用另一个方法是
标签: java class interface polymorphism