覆写和重载
方法的覆盖(Overriding)和重载(Overloading)是Java多态性的不同表现。覆盖(也可以叫重写,覆写)是父类与子类之间多态性的一种表现,而重载是一个类中多态性的一种表现。
(一)覆写:
1.方法的覆写(****重点,Java核心)
定义:子类定义了与父类方法名称,参数列表,返回值完全相同的方法。被覆写的方法不能拥有比父类更为严格的访问控制权限。
//Override.java
class A{
public int getVal(){
return 5;
}
}
class B extends A{
public int getVal(){
return 10;
}
}
public class Override{
public static void main(String[] main){
B b = new B();
System.out.println(b.getVal());
}
}
程序运行结果:10
对于B类的对象b,其getVal方法已经对A类的getVal方法进行了覆盖,所以当B调用getVal方法时,程序执行其子类方法体内中的内容,返回结果为10.
class A{ //包访问权限
public void fun(){
System.out.println("我是爸爸");
}
}
class B