如果我创建一个子类的对象,那么还将创建从继承子类的超类对象吗?如果没有,那么如何通过创建Thread类的子类(在多线程中)调用Thread类构造函数并创建一个Thread对象?
Jon*_*eet 12
子类的实例是超类的一个实例.只创建了一个对象,但作为该创建的一部分,构造函数调用一直链接在一起java.lang.Object.例如:
public class Superclass {
    // Note: I wouldn't normally use public variables.
    // It's just for the sake of the example.
    public int superclassField = 10;
    public Superclass() {
        System.out.println("Superclass constructor");
    }
}
public class Subclass extends Superclass {
    public int subclassField = 20;
    public Subclass() {
        super(); // Implicit if you leave it out. Chains to superclass constructor
        System.out.println("Subclass constructor");
    }
}
...
Subclass x = new Subclass();
System.out.println(x instanceof Subclass);
System.out.println(x instanceof Superclass);
System.out.println(x.superclassField);
System.out.println(x.subclassField);
这个输出是:
Superclass constructor
Subclass constructor
true
true
10
20
......因为:
SubclassSuperclasssuperclassField和subclassField).即使字段是私有的(通常也是这样),情况也是如此 - 代码中的代码Subclass将无法访问声明的私有字段Superclass,但字段仍然存在 - 并且仍然可以访问其中的代码Superclass.事实上,我们有一个具有所有状态(包括超类和子类)的单个对象以及所有行为(在其中声明的任何方法Superclass仍然可以在实例上使用Subclass,尽管有些可能被更多的特殊行为覆盖)是至关重要的了解Java的多态性方法.
| 归档时间: | 
 | 
| 查看次数: | 6444 次 | 
| 最近记录: |