真实世界树的继承示例

时间:2015-04-16 12:37:05

标签: inheritance

我确实有关于继承和类的基本问题。

如何创建树的真实世界对象(真正的树)。

树应该有树枝,树枝应该有树叶。

所以:

class Tree {
// something about a tree itself
}

Class Branch : Tree {
//something about a branch
}

Class Leaf : Branch {
//something about a leaf
}

但是现在,一个树类应该知道所有分支实例并创建所有分支对象本身,而分支应该为自己创建叶子并且也知道它们吗?

所以只需要放一棵树:

Tree myNewTree = new Tree(); // or something like that ? 

我想我在这里得到了一些东西......形状的例子 - >矩形,你要求矩形有意义。

1 个答案:

答案 0 :(得分:0)

您可以拥有以下结构

class Tree {
// something about a tree itself
        Branch b[];
        Leaf lf[];
}

Class Branch {
    //something about a branch
}

Class Leaf{
  //something about a leaf
}

如果要限制类型树的Branch和Leaf,请在上面的结构中扩展Tree类,并根据现实世界场景在树类中进行组合。

这里我使用过数组,你可以使用其他任何东西,比如ArrayList< E>或简单对象取决于您的要求。