为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

3 回答

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

Class A{
public A{
}
public A(String s){
}

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


0 回复 有任何疑惑可以回复我~
#1

smedlut 提问者

解释的简单易懂。附有代码。非常感谢!
2015-10-24 回复 有任何疑惑可以回复我~

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

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

0 回复 有任何疑惑可以回复我~
#1

怒放的生命012

你这是方法的重写,子类中定义的是个普通方法,调用的也是父类的普通方法,而非父类的构造方法
2016-05-22 回复 有任何疑惑可以回复我~

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

2 回复 有任何疑惑可以回复我~
#1

smedlut 提问者

非常感谢!
2015-10-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信