java构造方法。帮忙帮我看看,哪里错了

め追光者 2019-06-03 11:09:04
class A{
public int i=0;
A(int m){
i=1;
}
}

class B extends A{
B(int m){
i=2;
}
}

public class E{
public static void main(String args[]){
B b=new B(100);
System.out.println(b.i);

}
}
...全文
2020 48 打赏 收藏 转发到动态 举报
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
DAVE-BLACK 2019-06-11
  • 打赏
  • 举报
回复
引用 21 楼 天*宇的回复:
[quote=引用 2 楼 南国他乡客的回复:]构造方法必须要加上public, 不然new不了.

class A{
    public A(){
        //这里是构造方法的内容
    }
}

放屁,既然构造方法为啥加public[/quote] 还有就是问别人代码的时候不要用伪代码。伪代码鬼知道你想干啥
DAVE-BLACK 2019-06-11
  • 打赏
  • 举报
回复
引用 21 楼 天*宇的回复:
[quote=引用 2 楼 南国他乡客的回复:]构造方法必须要加上public, 不然new不了.

class A{
    public A(){
        //这里是构造方法的内容
    }
}

放屁,既然构造方法为啥加public[/quote] 构造方法加 public是为了给别的包用的。本包不用加。这个层主说的不对
DAVE-BLACK 2019-06-11
  • 打赏
  • 举报
回复
引用 2 楼 南国他乡客的回复:
构造方法必须要加上public, 不然new不了.

class A{
    public A(){
        //这里是构造方法的内容
    }
}

不加修饰符指的是包内可用。加private才是不了实例化
嘟嘟还没长大 2019-06-10
  • 打赏
  • 举报
回复
B类是A类子类,但构造方法不能被继承下来,如果B类和A类的参数一样,用super()或者super(参数),若父类的构造方法无法满足,则要重载构造方法。
K G 2019-06-09
  • 打赏
  • 举报
回复
你这里局部变量不影响i的值,而且夫类成员变量没有i
K G 2019-06-09
  • 打赏
  • 举报
回复
常量没用static修饰
tzkTangXS 2019-06-09
  • 打赏
  • 举报
回复
引用 2 楼 南国他乡客的回复:
构造方法必须要加上public, 不然new不了.

class A{
    public A(){
        //这里是构造方法的内容
    }
}

😓汗。。。。。。。。
tzkTangXS 2019-06-09
  • 打赏
  • 举报
回复
因为A写了有参构造,却没写无参。那么super的时候就必须带参数了。而你不写super(),那么默认是没参的。但你却又没写A的无参构造。综上所述:要么super()里加一int参数,或者写一个A的无参构造。还有对象引用的类型最好是父类
  • 打赏
  • 举报
回复
父类无参数构造没了,子类构造方法却调用父类无参构造,在子类有参构造第一行加super(参数)调用
Mpersevenrance 2019-06-08
  • 打赏
  • 举报
回复
引用 39 楼 Mpersevenrance的回复:
B里面没有成员变量,像A一样写
刚才没看到继承,饿!!!就这样吧
Mpersevenrance 2019-06-08
  • 打赏
  • 举报
回复
B里面没有成员变量,像A一样写
AX_liujiucheng 2019-06-08
  • 打赏
  • 举报
回复
这东西多看看书,基础
临风待风临 2019-06-07
  • 打赏
  • 举报
回复
引用 2 楼 南国他乡客的回复:
构造方法必须要加上public, 不然new不了.

class A{
    public A(){
        //这里是构造方法的内容
    }
}

构造方法是被子类调用初始化父类变量的,用不着public吧,默认的就够了
qq_43625764 2019-06-07
  • 打赏
  • 举报
回复
或者class A{ public int i=0; A(int m){ i=1; } } class B extends  A{ B(int m,int n){ super(n); i=2; } } public class E{  public static void main(String args[]){  B b=new B(100); System.out.println(b.i);     } }
qq_43625764 2019-06-07
  • 打赏
  • 举报
回复
class A{ public int i=0; A(int m){ i=1; } A(){} } class B extends  A{ B(int m){ i=2; } } public class E{  public static void main(String args[]){  B b=new B(100); System.out.println(b.i);     } }
qq_43625764 2019-06-07
  • 打赏
  • 举报
回复
你要么加一个A(){}
初♥不变. 2019-06-07
  • 打赏
  • 举报
回复
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《java构造方法。帮忙帮我看看,哪里错了》, 一起来围观吧 https://bbs.csdn.net/topics/392678069
安逸一一一 2019-06-07
  • 打赏
  • 举报
回复
class A里边应该加一个无参构造器
千里送人头 2019-06-07
  • 打赏
  • 举报
回复
楼主并不需要纠结这个问题,因为有一个默认的前缀,应该是 protected ,这个跟编程习惯有关,一般都会主动写上去,在一般的开发当中,没有什么区别,可以直接用 public ,但是这个前缀对于设计模型来说,就比较重要了,没有这个前缀,有一些设计模型就达不到需求了
叶遮沉阳 2019-06-07
  • 打赏
  • 举报
回复
一个类如果没有定义任何构造方法,系统会默认生成一个无参构造方法, 当有定义有参构造方法时,则不会自动生成无参构造方法。 子类继承父类时,若父类有 无参构造方法,则子类构造方法默认隐式调用父类无参构造方法, 当父类没有 无参构造方法,子类的构造方法必须显式调用父类的有参构造方法。
加载更多回复(28)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧