【发布时间】:2020-05-06 20:05:46
【问题描述】:
假设我创建了两个相关的类(Building 和 Person)。一座建筑物可以容纳 n 人(人),而一个人一次只能在一座建筑物中。
到目前为止的代码(只是它的相关部分)是:
public class Building {
//some attributes like name, location...
private List<Person> person;
//constructor
//some methods
}
public class Person {
//some attributes like name, age...
private Building building;
//constructor
//some methods
}
好的,现在我需要了解有关 Person 的更多详细信息,因此我将这个类扩展到其他两个(医生和父母),它们有自己的方法,其中一些是每个类的细节。
代码:
public class Parent extends Person {
// some specific attributs
public boolean born;
//constructor
//some methods
public void setChildBorn() {
this.born = true;
}
}
public class Doctor extends Person {
// some specific attributs
// constructor
// some methods
public void maternityWard() {
//HERE THE QUESTION
}
}
所以,一旦到达这里,从maternityWardmethod 我需要:
- 遍历 Doctor 所在的 Building 的 Person-ListArray(没关系,有一种方法可以获取它们)。
- 对于ListArray上的那些是Parent实例的对象(我可以使用instanceof Parent,这里没有意义),调用方法
setChildBorn()。
一个简短的架构是这样的:
Building < association > Person
/ extends \
Doctor Parent
最后,问题是:是否可以从另一个子类调用子类中的独占方法? 如果是,该代码将如何? 如果可能的话,我相信这里有一些演员表,但我不知道该怎么做。
提前感谢您的帮助。
【问题讨论】:
-
只使用instanceof然后强制转换
标签: java subclass superclass