java基础之(OPP方法重写)
-
前提
- A是B的子类
- 子类重写父类的方法
- 方法名相同
- 参数列表相同
- 父类方法不能为private
- 修饰符的范围可以扩大但不能缩小
- 抛出的异常的范围可以被缩小但不能扩大
-
主函数
public class Application { public static void main(String[] args) { A a=new A(); B b=new A(); a.test(); b.test(); } }
-
静态方法
public class A extends B {
public static void test(){
System.out.println("A的test()方法被调用");
}
}
public class B {
public static void test(){
System.out.println("B的test()方法被调用");
}
}
- 输出
- 非静态方法
public class A extends B {
public void test(){
System.out.println("A的test()方法被调用");
}
}
public class B {
public void test(){
System.out.println("B的test()方法被调用");
}
}
- 输出
总结 :
静态方法Static与Final都不会导致函数重写。- 重写的原因是子类不一定需要父类方法,重写父类方法构成功能拓展。
- 重写与重载都是多态的一种体现:
1. 重载是同一个类中方法的多态体现。
2. 重写是子类与父类之间方法的多态体现。