方法的重写(Override)
1.什么是方法重写
方法重写就是在子类中修改父类的某个非私有方法,也就是在子类中可以根据需要对从基类中继承来的方法进行重写
2为什么要用到重写
当父类的方法实现不能满足子类需求时,可以对方法进行重写( override)
3.方法重写的语法规则
(1)重写只能发生在具有继承关系的子类中。
(2)重写只能对父类成员方法进行重写,构造方法,成员变量,静态方法都不行
(3)重写的格式与父类的方法必须一致,返回值相同,而且访问权限不得小于父类
(4)@Override ,java标签,说明此方法是从父类重写过来的,在编译过程期间会进行会进行语法校验
public class demo3 {
public demo3(){//默认无参构造方法
System.out.println("默认无参构构造方法");
}
public void m1(){//父类的方法
System.out.println("方法1");
}
}
class d3 extends demo3{//子类继承父类
/*public demo3(){
}
不能对构造方法重写*/
public void m1 () {//子类对父类m1方法重写
System.out.println("方法2");
super.m1();//可以在重写的时候对父类的方法再次调用
}
public static void main(String[] args) {
d3 d1 = new d3();
d1.m1();
//super.m1();
//super不能出现在main方法当中
}
}
/*输出:
默认无参构构造方法
方法2
方法1
*/
那么重写与重载的区别就显而易见了,重写是在具有继承关系的子类中对父类的非私有、非静态的成员方法进行修改,格式,返回值必须一致。而重载是在一个类体中,方法名相同而形参类型不同至少两种的成员方法。