类的重写与方法的重载
联系:
同名方法,都是多态性的体现。重载是编译时多态,重写是运行时多态。
重写
子类对父类的方法进行重新编写 (不满意父类的方法)
要求:
-
两者的方法名和参数列表相同
-
子类的访问权限大于等于父类的
-
子类的返回值类型小于等于父类的
public class Demo extends Object {
protected String getString() {
return "father";
}
public Demo met() {
System.out.println("123");
return new Demo();
}
}
class Son extends Demo {
// 权限修饰符:子>=父
public String getString() {
return super.getString();
}
// 返回类型:子<=父
@Override
public Son met() {
Demo met = super.met();
return new Son();
}
}
重载
便于记忆( 以统一的方式处理不同数据类型)
-
重载判定:参数列表必须不同(参数个数、类型和顺序)
-
无效判定:访问修饰符、返回类型
比如:三者两两之间不构成重载
public void a() {
}
private void a() {
}
private int a() {
return 1;
}
沉舟侧畔千帆过,病树前头万木春。