我已经开始学习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/

10-09 02:10