Java 的构造方法
这是一道有关构造方法的程序:
package org.leeing.mem;
abstract class BaseClass{
public BaseClass(){
this.print() ;
}
public abstract void print() ;
}
class SubClass extends BaseClass{
private int x = 100 ;
public SubClass(int x){
this.x = x ;
}
public void print(){
System.out.println("x = " + x) ;
}
}
public class TestJava{
public static void main(String args[]){
BaseClass a = new SubClass(10) ;
}
}
它的输出结果是:x = 0
这是因为子类对象的实例化过程是这样的:首先调用父类的构造方法BaseClass(),而在BaseClass()调用完毕之前,子类的构造方法SubClass()是不能得到调用的,同时SubClass 的所有属性也不能初始化,在这里中 int 类型的 x 默认值为 0。
同时,在开发中应当尽可能遵循的原则是:一个类不要继承一个已经实现好的类,而是最好继承抽象类或者实现接口。
Related posts:
评论