覆盖是多态的体现,面向对象核心就是多态。我们编程最多的就是父类、子类,继承、实现的关系,很多情况就是子类去覆盖(重写)父类方法。
下面是个小例子:
public class Test3
{
public static void main(String[] args) {}
public void f1(int i){}
在其后加上下面方法中的任意一个。
1.编译无法通过,参数类型相同,只是把i换成j而已,还有就是改变了返回值类型,但重载不关心函数返回值类型,所以编译器认为是覆盖了上面的方法,而在同一个类JAVA是不允许的。
public int f1(int z){} //1编译不通过,覆盖
public int f1(int i,int j){} //2重载
public void f1(long i){} //3重载
}