程序介绍:基类BaseClass中有method()方法,下层类SubClass改写了method()方法,创建一个SubClass的对象。 问题描述:1,当创建一个SubClass对象sc,会隐式调用基类的构造器初始化,基类构造器调用了method()方法,从程序的结果显示调用的是SubClass类改写的method方法(基类中也定义了method方法,sc编译类型是SubClass,运行类型也是SubClass,可是sc调用的是基类构造器,为什么不就近原则在本类(基类)中调用method??有点类似多态中的调用)2,SubClass中改写了method方法,method方法访问本类的成员时怎么会为空???
用手机发的,格式上有点对不起大家哈……
class BaseClass {
BaseClass()
{
method();
}
public void method() {
System.out.println("BaseClass的方法");
}
}
class SubClass extends BaseClass { private String str="SubClass"; public void method() {
System.out.println("SubClass改写了method方法");
System.out.println(str);
}
}
public class Construtor { public static void main(String[] args) {
SubClass sc=new SubClass();
}
} |