黑马程序员技术交流社区

标题: 子类实例化过程 [打印本页]

作者: sk0806    时间: 2014-8-28 23:30
标题: 子类实例化过程
  1. class Fu
  2. {       
  3.         Fu()
  4.         {
  5.                 System.out.println("Fu run");
  6.         }
  7. }
  8. class Zi extends Fu
  9. {
  10.         Zi()
  11.         {
  12.                 /**
  13.                 子类的构造函数第一行有一条隐士的语句
  14.                 super();
  15.                 */
  16.                 System.out.println("Zi run");
  17.         }
  18.         Zi(int x)
  19.         {
  20.                 System.out.println("Java");
  21.         }
  22. }

  23. class ExtendsDemo4
  24. {
  25.         public static void main(String[] args)
  26.         {
  27.                 Zi z=new Zi();
  28.                 Zi z1=new Zi(4);
  29.         }
  30. }
复制代码
在对子类对象进行初始化时,父类的构造函数也会运行:
        因为:子类的构造函数默认第一行有一条隐式语句
                super();
        super():会访问父类中空参数的构造函数,
                而且子类中所有的构造函数默认第一行都是
                super();

为什么子类一定要访问父类中的构造函数:
        因为父类中的数据子类可以直接获取,所以子类
                对象在建立时,需要先产查看父类是如何
                初始化的,所以子类在对象初始化时,要先
                访问以下父类中的构造函数,如果要访问
                父类中指定构造函数,可以通过手动定义
                super语句的方式来指定.

super 语句一定定义在子类构造函数的第一行。

子类的实例化过程:
        结论:
                子类的所有的构造函数,默认都会访问父类中
        空参数的构造函数,因为子类每一个构造函数内的
        第一行都有一句隐式的super();
       
当父类中没有空参数的构造函数时,子类必须手动
通过super或this语句形式来指定要访问父类中的构造函数

当然:子类的构造函数第一行也可以手动指定this语句
来访问本类中的构造函数。子类中至少会有一个构造函数
会访问父类中的构造函数


学习进度比较慢,希望多和大家交流,打好基础!


作者: 天黑偷牛    时间: 2014-8-29 09:26
加油,加油,共勉
作者: 君行    时间: 2014-8-29 09:31
                                                    ,
作者: sk0806    时间: 2014-8-29 11:34
天黑偷牛 发表于 2014-8-29 09:26
加油,加油,共勉

恩呢,,早点进
作者: 不淡定,小学生    时间: 2014-8-29 11:38
看一下,不错
作者: 空洞的望着窗外    时间: 2014-8-29 12:06
加油。。
作者: sk0806    时间: 2014-8-29 12:31
空洞的望着窗外 发表于 2014-8-29 12:06
加油。。

恩,加油!
作者: 小糊涂神    时间: 2014-8-29 17:56
理解很到位,一起努力!
作者: 彭卫红    时间: 2014-8-29 18:41
恩,基础很重要,打牢点好
作者: dftgg    时间: 2014-8-29 18:48
顶一个 !!!!!




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