A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© darkads 中级黑马   /  2014-9-12 13:05  /  664 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

构造函数的主要作用是创建一个实例对象,分为无参与有参两种:
public A(){} 和 public A(int a) {}
一个构造函数可以使用this()调用同一个内中构造函数
使用super()调用父类的构造函数
重点:一个构造函数要么开始于this(),要么开始于super()。
class A {
    public A() {
        System.out.println("A--无参");
    }
}
class B extends A {
    public B() {
        System.out.println("B--无参");
    }
    public B(int a) {
        System.out.println("B--有参");
    }
}
class C extends B {
    public C() {
        System.out.println("C--无参");
    }
}
当我我们要new一个C对象时:
A--无参
B--无参
C--无参
最先执行的是A的无参构造参数,然后是B,最后是C,也就是说C的无参构造函数一开始执行时调用了super,B也一样
当我使用B的有参方法new一个B对象:
A--无参
B--有参
B的有参构造方法也一样要调用A的无参构造方法
说明:如果一个构造参数没有显示的调用this()或者super(),那么他会隐式的调用super(),也就是父类的无参构造方法,一直向上递归,直到Object


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马