直接先给答案吧
重写是发生在子类与父类中,方法名、参数列表、返回值、访问修饰符和异常都相同
首先,构造器不能被继承,因为每个类名都不相同,而构造器的名称与类名相同,这肯定不能算是继承,所以,既然构造器不能被继承,那他肯定是不能被重写咯
见代码:(这里的返回值只是为了加强说明)
public class FuLei {
public FuLei(){}
public String testFuLei(String s){
System.out.println("父类的:"+ s);
return s;
}
}
没有对父类的方法进行重写的时候:
public class ZiLei extends FuLei {
public static void main(String[] args) {
ZiLei ziLei = new ZiLei();
ziLei.testFuLei("字符串");
}
}
输出:
父类的:字符串
对父类的方法进行重写的时候:
public class ZiLei extends FuLei {
public String testFuLei(String s){
System.out.println("子类的:"+ s);
return s;
}
public static void main(String[] args) {
ZiLei ziLei = new ZiLei();
ziLei.testFuLei("字符串");
}
}
输出:
子类的:字符串
这样才是真正意义上的重写
如果尝试重写父类的构造器会发生什么?
所以最后的结论还是构造器不能被重写