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