黑马程序员技术交流社区

标题: 008分享_day09继承中子类的实例化即super的过程和应用 [打印本页]

作者: 掉了一地..    时间: 2015-2-1 14:02
标题: 008分享_day09继承中子类的实例化即super的过程和应用
fu{
  fu(){sop(...1);}
  fu(int x){sop(...2);}         
}
zi extends fu{
     zi(){
        super();//
        sop(...3);
        }
     zi(int x)
        {   //super();
            this();//如果子类的构造函数第一行写了this,则不会再调用super初始化父类。因为this和super只能定义在第一行。初始化动作要先执行。而this则访问了本子类对象的构造函数。
            sop(...4);
        }
}
class demo
{
   public static void main(..)
        {
        new zi(6);
        }
}
1.父类构造函数中也会有super();
父类的父类是睡呢?父类super调用的到底是谁的构造函数呢?
java体系再设计时,定义了一个所有对象的父类object。
总结:
   1.类中的构造函数默认第一行都有隐式的super函数语句,在访问父类中的构造函数。所以父类的构造函数既可以给自己的对象初始化,也可以给自己的子类对象初始化。
   2.如果默认的隐式super没有对应的构造函数,必须在构造函数中通过this或者super的形式明确调用的构造函数。
   3.this语句和super语句是不可以在同一个构造函数中出现的,必须都定义在第一行。初始化动作必须要先执行。

//子类的实例化过程的应用,也是super调用的应用。
  什么时候用super调用父类中构造函数,只要使用父类的指定初始化动作,就在子类中通过super(参数)格式进行调用。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2