问答详情
源自:9-7 Java 中的 super 的使用

最后的父类内部定义了有参构造函数方法,子类内可不可以也重写该构造方法呢?

最后的父类内部定义了有参构造函数方法,子类内可不可以也重写该构造方法呢?

提问者:smedlut 2015-10-24 11:44

个回答

  • 小城阿哥
    2015-10-24 12:00:48
    已采纳

    不可以,  构造方法是不可以重写的    如下,构造方法名和类名是相同的,子类和父类类名不同,构造方法自然不能相同,所以也谈不上重写

    Class A{
    public A{
    }
    public A(String s){
    }
    
    Class B extends A{
    public B(String s){
    //super(s);
    }


  • 爱土豆
    2015-11-10 20:13:07

    因该是可以的吧,构造方法也是方法啊,只要在子类中创建与父类的构造方法方法名、参数、返回值类型相同的方法,再进行重写就行了吧

    class tudou_ extends tu{
    public tudou_(){
     System.out.println("tudou执行了");
    }
    void tu(int i){
     this.i = 2;
    }

    }

    class tu{
    int i;
    tu(){
    }
    tu(int i){
     this.i = i;
    }
    }

  • 子木李
    2015-10-24 11:58:03

    子类不能继承父类的构造方法,也不能覆盖父类的构造方法。,子类如果想使用父类的构造方法,必须在子类的构造方法中使用关键字super来表示,并且super必须是子类构造方法中的头一条语句,子类在实例化对象时,如果子类的构造器没有显示的调用超类的方法,则将自动调用父类默认构造器。如果父类没有不带参数的构造器,且子类的构造器中又没显示的调用超类其他构造器,则Java编译器将报告错误。所以子类使用父类的构造方法是通过super关键字实现的