重写:需要有继承关系,子类重写父类的方法!
重写,子类的方法和父类要一致,方法体不同!
为什么要重写:
父类的功能,子类不一定需要,或者不一定满足!
IDEA快捷键:Alt + insert :override;
package com.cnblogs; //本类用于实现 public class Application { public static void main(String[] args) { //实例化父类 Persion persion = new Persion(); //实例化子类 Student stu = new Student(); persion.getName();//父类属性 stu.getName(); //子类属性 //父类属性 } }
package com.cnblogs; /* persion类 */ public class Persion { //父类属性 private String name = "父类属性"; //父类方法 public void getName(){ System.out.println(name); } }
package com.cnblogs; /* student类 */ public class Student extends Persion{ //子类属性 private String name = "子类属性"; //子类重写父类方法 @Override public void getName() { System.out.println(name); //super关键字 super.getName(); } }
总结:
重写的要求:两同两小一大
两同:方法名 参数列表 要完全一致
两小:
子类返回值类型小于等于父类的返回值类型(注意此处说的是继承关系,不是值大小)
子类抛出异常小于等于父类方法抛出异常
一大:子类方法的修饰符权限要大于等于父类被重写方法的修饰符权限