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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 暴躁的熊二 中级黑马   /  2016-9-21 22:29  /  1002 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

父类有有参构造,没有参构造,子类也有有参构造没有无参构造,那么java会不会自动给附带无参构造还是子类直接用super继承父类的有参.那么没有有参的话又是哪种情况呢.好懵逼啊.求解答

10 个回复

倒序浏览
不会 java中构造方法如果不写父类的构造方法,会默认super();, 如果父类没有super();那么子类在构造方法中就会报错    如果不想报错的话,那就写上父类的带参构造方法就可以了
回复 使用道具 举报
本帖最后由 &天马星空ぁ 于 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:52
板凳
就是有有参的话不会自动生成无参了吧
回复 使用道具 举报
有有参构造,系统就不再会给无参构造
回复 使用道具 举报
星哥大周 来自手机 初级黑马 2016-9-23 01:15:59
地板
只要有有参构造,不会自动补充空参构造了
回复 使用道具 举报
通过this来调用自身的有参构造,再来调用父类的构造函数
回复 使用道具 举报
1. java自动添加无参的构造方法是在你没有添加无参和有参的构造方法的时候,一旦你添加了任何一种,java都不会再给你添加。
2. super是用来访问父类的方法,不是继承。
3. 没有有参,那就是有无参。
回复 使用道具 举报
不会,写了有参后那个默认的无参就没有了
回复 使用道具 举报
多谢,懂了
回复 使用道具 举报
系统默认会给无参  但是你定义了有参 系统就不会给了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马