构造方法是不能被继承。父类的构造方法可以通过super关键字调用。

解决方案 »

  1.   

    我们老师也和我们说过不能继承父类的构造函数,但是当时我为了试验,在myeclipse中尝试了一下,继承父类的构造,也没有报错和错误提示。
      

  2.   

    继承?你确定你没有理解错?class A{
    public A(){
    }
    public A(int i){
    }
    }
    class B extends A{
    }如上的两个类,如果你能通过new B(1);来创建B对象,那么B确实就是集成了A的构造函数,但是可以吗?你试试就知道咯。
      

  3.   


    class A{
        public A(){
        }
        public A(int i){
        }
    }
    class B extends A{
    public void A(){

    }
    }这样在编译器里也是显示构造函数的形式
      

  4.   

    这个我知道啊,但是Eclipse中 class A{
            public A(){
            }
            public A(int i){
            }
        }
        class B extends A{
            public void A(){
                
            }
        }
    这样也可以啊,这是调用的父类的构造吗??我想问的就是这个啊!
      

  5.   


    这个不叫调用父类构造函数,只是在子类里定义了一个名字与父类构造方法名同名的方法,并且注意你定义的这个方法必须是有返回值的,而父类的构造函数没有。所以这两个方法之间就这么点关系。如果你在子类中显示调用A方法,那调用的是子类自己定义的方法,而不是父类的构造方法。父类的构造方法只能在子类构造方法的第一个语句用super(..)方式调用。
      

  6.   

    子类必须实现父类的构造函数。只不过,有的父类是空,子类也是空,好像没管理其它是默认的。
    下边的程序就出错class a {
      public a(int a) {
      }
    }
    class b extends a {
      public b() {  }
    }
      

  7.   


    在初始化子类的对象时  必须要调用调用到父类的构造函数如果父类里没有空参数的构造函数时 ,子类就要用super(参数);的形式或者this语句的形式调用了 ,否则会编译失败的,但是只能重写父类的一般方法,一定能、不能重写父类的构造方法,因为构造函数是用类名定义的,子父类的类名肯定不会是一样的。你应该是没有把覆盖的概念理解好吧。。我是个新手不知能不能帮到你。。我是这样理解的,理性采纳哈。
      

  8.   


    这个不是调用父类的构造函数,这个知识B里的一个方法A(),
    在继承中是不可能继承父类的构造函数的,父类的构造函数只能在子类的构造函数的第一行用super()方式来调用的
      

  9.   

    如果在子类的构造方法中 没有super关键字 那么是默认存在super()在子类构造方法的首行的。 子类的构造方法是可以通过super关键字使用父类的构造方法的