黑马程序员技术交流社区

标题: 构造方法求解,急急急 [打印本页]

作者: 暴躁的熊二    时间: 2016-9-21 22:29
标题: 构造方法求解,急急急
父类有有参构造,没有参构造,子类也有有参构造没有无参构造,那么java会不会自动给附带无参构造还是子类直接用super继承父类的有参.那么没有有参的话又是哪种情况呢.好懵逼啊.求解答
作者: &天马星空ぁ    时间: 2016-9-21 22:55
不会 java中构造方法如果不写父类的构造方法,会默认super();, 如果父类没有super();那么子类在构造方法中就会报错    如果不想报错的话,那就写上父类的带参构造方法就可以了
作者: &天马星空ぁ    时间: 2016-9-21 22:56
本帖最后由 &天马星空ぁ 于 2016-9-21 22:58 编辑

可以这样写
class A{
        int a;
        int b;
        public A(int a,int b){        this.a=a;
        this.b=b;
}
}
class B extends A{
        public B(int a,int b){
                super(a,b);
             System.out.println("子类的带参构造方法");           
            }
}

作者: 暴躁的熊二    时间: 2016-9-22 23:33
就是有有参的话不会自动生成无参了吧
作者: huangweicong    时间: 2016-9-23 00:27
有有参构造,系统就不再会给无参构造
作者: 星哥大周    时间: 2016-9-23 01:15
只要有有参构造,不会自动补充空参构造了
作者: taozhihui    时间: 2016-9-23 07:57
通过this来调用自身的有参构造,再来调用父类的构造函数
作者: 李鑫246    时间: 2016-9-23 08:13
1. java自动添加无参的构造方法是在你没有添加无参和有参的构造方法的时候,一旦你添加了任何一种,java都不会再给你添加。
2. super是用来访问父类的方法,不是继承。
3. 没有有参,那就是有无参。
作者: litianji2016    时间: 2016-9-23 12:05
不会,写了有参后那个默认的无参就没有了
作者: 暴躁的熊二    时间: 2016-9-25 23:10
多谢,懂了
作者: 肖小龙    时间: 2016-9-26 00:08
系统默认会给无参  但是你定义了有参 系统就不会给了




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