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);    }
}

解决方案 »

  1.   

    构造方法必须要加上public, 不然new不了.
    class A{
        public A(){
            //这里是构造方法的内容
        }
    }
      

  2.   

    public static 一般如果是公用的或者是经常要调用的 最好加上
      

  3.   

    class B extends  A{
    B(int m){
    i=2;
    }
    }
    你应该是这里报的错,应该是
    class B extends  A{
    B(int m){
    super(1);
    i=2;
    }
    }
      

  4.   


    因为父类是有参构造,这里调用父类构造需要提供参数
    请加入 super(m); 或其他int 参数都可以。
      

  5.   

    需要在A类中加一个无参构造或者在B中的构造器的第一行加一个super(m),就不会报错了。
    new做的3件事情:
        1.堆中开辟空间,成员属性跟随对象进入堆内存并赋默认值。
        2.调用构造器为对象初始化信息。
        3.将地址返回给引用。
    你要让程序初始化能走到A,我就直到这两种办法。
      

  6.   

    类B的构造方法第一句写成这样也行super(2)
      

  7.   

    B类的构造方法少了super或者A类构造方法少了无参构造方法
      

  8.   

    因为A中没有无参构造方法所以需要在B的构造方法中加入super(m);整体修改如下
    class A{
    public int i=0;
    A(int m){
    i=1;
    }
    }class B extends  A{
    B(int m){
    super(m);
    i=2;
    }
    }public class E{
    public static void main(String args[]){
    B b=new B(100);
    System.out.println(b.i); }
      

  9.   

     构造函数不用public 吧 →_→
      

  10.   

    构造方法不用public,且必须与类名一致
      

  11.   

    放屁,既然构造方法为啥加public
      

  12.   

    少了个无参构造,public  class
      

  13.   

    子类重写父类的有参构造函数要用上 super()
      

  14.   

    class A里边应该加一个无参构造器
      

  15.   

    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);    }
    }
      

  16.   

    或者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);    }
    }
      

  17.   

    构造方法是被子类调用初始化父类变量的,用不着public吧,默认的就够了
      

  18.   

    楼主并不需要纠结这个问题,因为有一个默认的前缀,应该是 protected ,这个跟编程习惯有关,一般都会主动写上去,在一般的开发当中,没有什么区别,可以直接用 public ,但是这个前缀对于设计模型来说,就比较重要了,没有这个前缀,有一些设计模型就达不到需求了
      

  19.   

    我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《java构造方法。帮忙帮我看看,哪里错了》, 一起来围观吧 https://bbs.csdn.net/topics/392678069
      

  20.   

    父类无参数构造没了,子类构造方法却调用父类无参构造,在子类有参构造第一行加super(参数)调用
      

  21.   

    因为A写了有参构造,却没写无参。那么super的时候就必须带参数了。而你不写super(),那么默认是没参的。但你却又没写A的无参构造。综上所述:要么super()里加一int参数,或者写一个A的无参构造。还有对象引用的类型最好是父类
      

  22.   

    常量没用static修饰
      

  23.   

    B类是A类子类,但构造方法不能被继承下来,如果B类和A类的参数一样,用super()或者super(参数),若父类的构造方法无法满足,则要重载构造方法。
      

  24.   

    不加修饰符指的是包内可用。加private才是不了实例化
      

  25.   

    放屁,既然构造方法为啥加public
    构造方法加 public是为了给别的包用的。本包不用加。这个层主说的不对
      

  26.   

    放屁,既然构造方法为啥加public
    还有就是问别人代码的时候不要用伪代码。伪代码鬼知道你想干啥