子类是否可以与其父类关联?

时间:2017-03-12 12:57:42

标签: java oop

我们被要求查找是否可能有一个与其父类有关联的子类,以及它是否有意义。

我做了我自己的例子:

class CompanyPerson{}

class Boss extends CompanyPerson{}

class Employee extends CompanyPerson{
    CompanyPerson boss;
}

我明白这是有效的,我也试过Eclipse,实际上,它的确有效。但我不明白的是,为什么我需要这种关联而不是在我的Employee类中拥有Boss属性。

当然因为我对面向对象编程没有广泛的看法,但在这种情况下,我看不到它的重点。

2 个答案:

答案 0 :(得分:1)

将'CompanyPerson'与'Boss'关联起来的好处是,如果您引入第三种类型的CompanyPerson(例如经理),您将能够将其指定为您的老板,而无需更改现有的一行代码。

最好始终将代码打开以进行扩展。在这方面,您可以简要阅读SOLID原则

答案 1 :(得分:0)

首先,你是完全正确的:在这个特定的例子中,Boss类型的变量更有意义。我只是称之为Supervisor,以便更好地表达两者之间的关系,但现在就在这一点之外。

但是,我认为你被要求的合同有点奇怪。误解可能存在于关联这个词中。正如您所猜测的那样,在类的实例之间建立了关联,但是契约明确要求子类和父类之间的关联。

所以你实际上正在寻找的是同一个实例上的子类和父类之间的关联。换句话说,如果存在Employee类型的实例,它是否与类型CompanyPerson有关联?