Java 如何从super';s关联类
假设我创建了两个关联的类(Building和Person)。一座建筑物可容纳n人,一个人一次只能在一座建筑物内 到目前为止,守则(只是其中的相关部分)是:Java 如何从super';s关联类,java,subclass,superclass,Java,Subclass,Superclass,假设我创建了两个关联的类(Building和Person)。一座建筑物可容纳n人,一个人一次只能在一座建筑物内 到目前为止,守则(只是其中的相关部分)是: public class Building { //some attributes like name, location... private List<Person> person; //constructor //some methods } public class Person { /
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
}
因此,一旦到达这里,从maternityWard
方法,我需要:
setChildBorn()
Building < association > Person
/ extends \
Doctor Parent
建筑人
/扩展\
父母医生
最后,问题是:是否可以从另一个子类调用子类中的排他方法?
如果是,代码是什么?
如果可能的话,我相信这里有一些演员,但我不知道如何做到这一点
提前感谢您的帮助。您可以,但是如果在
人员
列表中有医生
对象,而您忘了使用实例
,则您总是有风险获得ClassCastException
。如果不是,则假设您将Person
存储在名为p
的变量中。然后,要访问该方法,请执行以下操作:
((Parent) p).setChildBorn();
您可以,但如果
人员
列表中有医生
对象,而您忘记使用实例
,则您总是有风险获得ClassCastException
。如果不是,则假设您将Person
存储在名为p
的变量中。然后,要访问该方法,请执行以下操作:
((Parent) p).setChildBorn();
是否可以从另一个子类调用子类中的排他方法
子类
排他方法在其他子类(即同级类)中的可见性与非同级类中的可见性相同,并且适用于任何非同级类
是否可以从另一个子类调用子类中的排他方法
子类
独占方法在其他子类(即同级类)中的可见性与非同级类中的可见性相同,并且适用于任何非同级类。您可以使用
instanceof
运算符和强制转换来完成此操作
public class Doctor extends Person {
//..some code
public void maternityWard() {
for(Person p : building.getPersonList()){
if(p instanceof Parent){
Parent parent = (Parent)p;
parent.setChildBorn();
}
}
}
附言。
虽然这将帮助您调用Parent方法,但这是一种不好的做法,尽管它有助于理解语言语义和语法
很少有好的应用程序设计实践
您可以使用
instanceof
运算符和强制转换来执行此操作
public class Doctor extends Person {
//..some code
public void maternityWard() {
for(Person p : building.getPersonList()){
if(p instanceof Parent){
Parent parent = (Parent)p;
parent.setChildBorn();
}
}
}
附言。
虽然这将帮助您调用Parent方法,但这是一种不好的做法,尽管它有助于理解语言语义和语法
很少有好的应用程序设计实践
使用instanceof then Casting使用instanceof then Casting感谢您的回答@Arvind,这在理论上很有帮助。感谢您的回答@Arvind,这在理论上很有帮助。感谢@Higigig,简短但具体的解释。感谢@Higig,简短但具体的解释。非常感谢所有的细节@nits.kk,这正是我期望得到的答案。非常感谢所有的细节@nits.kk,这正是我期望得到的答案。