- class fu
- {
- int i=0;
- public fu(String a)
- {
- System.out.println("A");
- //i=1;
- }
- public fu()//3 执行里面的代码块
- {
- System.out.println("B");//最先打印了一个B.
- //i+=2;// i=i+2 i=2 执行完跳转到4
- // System.out.println(i);
- }
- }
- class Demo extends fu
- {
- public Demo(String a) //2
- {
- //super(); //因为是继承,子类的每个构造函数都有一句隐式的super() 主要是为了查看父类是如果对参数进行初始化的。程序跳转到3
- System.out.println("C");//4 接着打印了一个C
- i=5; //在本类中并没有定义变量i,所以会寻找父类的i 这里改变的是父类的i .如果父类没有i 编译报错。
- //System.out.println(super.i);
- }
- public static void main(String[] args)
- {
- int i=4;
- fu d=new Demo("A");//多态,使用父类引用指向本类子类对象。
- //new Demo("A") 新建Demo对象,使用demo的有参构造函数。程序跳转到2
- System.out.println(d.i);//最后执行d.i i 为父类中的变量。
- }
- }
复制代码 |