我面临一个执行问题。问题是在java中是否可以将“祖父”转换为“孩子”。
例如:
这是父类
public class IDDocument {
public IDDocument() {
}
}
这是从其父级iddocument继承的类
public class Passport extends IDDocument {
public Passport() {
}
}
现在,有一个类继承自passport
public class SLPassport extends Passport {
public SLPassport() {
}
}
知道这一点,我想知道是否有可能将iddocument转换为slpassport。
这个问题产生于这样一个事实,即我从服务接收的信息包含在iddocument类型中,但我还需要仅包含在slpassport中的数据,因此有必要使用iddocument。
以前,我可以将passport转换为iddocument,如下所示:
((Passport) idDocument).getSomeMethod();
所以我检索了只有子类包含的数据。
如我所说,我的目标是用iddocument从passport子类中捕获数据。
3条答案
按热度按时间yvt65v4c1#
slpassport对象可以强制转换为:iddocument、passport、object或slpassport
如果你做了这样的事:
这是有效的。
yfwxisqw2#
如果有一个类a,一个从a继承的类b,还有一个从b继承的类c,那么类c也从a继承。以下是与您的问题相关的多态性的解释。
fjaof16o3#
简单的回答是肯定的,假设这个示例真的是一个
SLPassport
示例。我还建议你在施法前明确检查这个,以避免ClassCastException
学生: