我已经开始学习Java,一个朋友问我,
之间有什么区别
ParentClass p =新的ChildClass();
和
ChildClass c =新的ChildClass();
提前致谢。
最佳答案
p
仅具有ParentClass
中定义的可访问方法,只要它不强制转换为ChildClass
的实例c
将具有ParentClass
中定义的可用方法和ChildClass
中定义的方法
例如:
class ParentClass {
public void dothis() {
}
}
class ChildClass extends ParentClass {
public void doother() {
}
}
p
将只能呼叫p.dothis()
。调用p.doother()
将导致异常,或使程序完全无法编译。c
很乐意接受c.dothis()
和c.doother()
如果您“怀疑”(在编程时不检查就无法确定)某个对象可能是某个子类,则可以尝试将其转换。
始终在检查对象实例之前进行检查。
当检查通过时,可以将对象强制转换为子类。
if(p instanceof ChildClass) {
ChildClass c = (ChildClass)p;
c.doother();
}
关于java - 父子实例之间的关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40260998/