方法重写override:子类对父类定义的方法重新定义的这种语法机制称为方法重写。子类重写的方法具有和父类相同的方法签名。即具有相同的返回类型、方法和参数列表。在访问修饰符方面,重写的方法应当至少保有原有的访问权限,或放大。相对于父类的private方法不存在重写的问题。父母protected,default,public方法子类重写时也至少是这些访问权限或放大至public。子类重写父类方法目的是扩展父类方法功能或限某些功能。子类仍然可以访问父类重写方法,但必须加上super限定。
classFather {
inta;
intb;
publicFather(inta,intb){
this.a=a;
this.b=b;
}
publicvoidprintValue(){
System.out.println("a="+a+"\tb="+b);
}
}
classSonextendsFather{
intc;
publicSon(inta,intb,intc){
super(a,b);
this.c=c;
}
publicvoidprintValue(){
super.printValue();//调用父类的同名方法,必须加上super限定,否则此处死循环。
System.out.println("c="+c);
}
}
publicclassDemo1 {
publicstaticvoidmain(String[]args) {
Sonson=newSon(1,2,3);
son.printValue();
}
}
运行程序,结果如下图所示: