想写一个List,其中Node的定义如下:
public abstract class Node{
public Node son=null;//为了测试方便,使用public
//……还有好多
}
这样是想以后用的时候可以继承Node再添加实体。显然这么定义是不行的,因为以下代码可以通过:
A a=new A();//A extends Node
a.son=new B();//B extends Node
那么怎么定义呢?
PS:如果写成
public class Node<T>{
private Node son=null;
private T t=null;
}
这样然后实体作为参数传给Node可以实现的这种事情我也是知道的。单纯是觉得不美丽。