【发布时间】:2019-08-11 17:25:40
【问题描述】:
假设我必须使用一个具有实现二叉树的类的库,其签名如下:
class Node {
public void setN0(Node n);
public void setN1(Node n);
public Node getN0();
public Node getN1();
}
所以,我想创建一个扩展它的类,在它上面放置一个图形层,比如
class UINode extends Node {
private int coordinateX;
private int coordinateY;
}
但我不能这样做,因为它不可能将 UInode 传递为 Node 子节点,例如
UINode root = new UINode();
UINode n0 = new UINode();
UINode n1 = new UINode();
root.setN0(n0); //Not possible
root.setN1(n1); //Not possible
是否有设计模式或其他东西来处理这种情况?或者有一个我看不到的简单解决方案?
【问题讨论】:
-
有可能。如果
UINode是Node,那么您可以将它传递给任何采用Node的方法。 -
是什么让你相信这是不可能的?
标签: java oop design-patterns binary-tree nodes