Sin*_*ian 10 java oop inheritance
子类对象如何引用超类?例如:
public class ParentClass {
public ParentClass() {} // No-arg constructor.
protected String strField;
private int intField;
private byte byteField;
}
public class ChildClass extends ParentClass{
// It should have the parent fields.
}
Run Code Online (Sandbox Code Playgroud)
在ChildClass调用构造函数时,ParentClass会创建一个类型的对象,对吧?
ChildClass继承strField自ParentClass对象,因此它(ChildClass对象)应该以ParentClass某种方式访问对象,但是如何?
当您ChildClass childClassInstance = new ChildClass()只创建一个新对象时.
您可以看到ChildClass由以下内容定义的对象:
ChildClass+字段的字段ParentClass.因此该字段strField是ChildClass的一部分,可以通过访问childClassInstance.strField
所以你的假设
ChildClass调用构造函数时,ParentClass会创建一个类型的对象
不完全正确.创建的ChildClass实例也是一个ParentClass实例,它是同一个对象.
的实例ChildClass没有ParentClass对象,它是一个ParentClass对象。作为子类,它可以访问其父类中的公共和受保护的属性/方法。所以在这里ChildClass可以访问strField,但不intField和byteField,因为他们是私有的。
您可以在没有任何特定语法的情况下使用它。
| 归档时间: |
|
| 查看次数: |
20583 次 |
| 最近记录: |