1. 程式人生 > >java中方法過載和方法重寫分析

java中方法過載和方法重寫分析

      方法重寫又稱方法覆蓋。


(2)若子類中的方法與父類中的某一方法具有相同的方法名、返回型別和引數表,則新方法將覆蓋原有的方法。

如需父類中原有的方法,可使用super關鍵字,該關鍵字引用了當前類的父類。


(3)子類函式的訪問修飾許可權不能少於父類的;
下面是重寫的例子:


class Person//定義父類
fpublic void print(){//父類中的方法
System.out.println( 父類Person的print方法! );
}
}
class Student extends Person//定義子類繼承Person類
{public void print(){//方法的重寫
System.out.println( 子類Student的print方法! );
}
}
public class 0verrideExampleO1
{public static void main(String args[])
{Student s=new Student();
S.print();
}
}

執行結果:子類Student的print方法!

可以看出,當子類重寫了父類中的print()方法後,使用S呼叫的是子類的print()方法,父類中的print()方法被覆蓋了。也就是說,如果現在子類將父類中的方法重寫了,呼叫的時候肯定是呼叫被重寫過的方法,那麼如果現在一定要呼叫父類中的方法該怎麼辦呢?此時,通過使用.. super關鍵就可以實現這個功能,super關鍵字可以從子類訪問父類中的內容,如果要訪問被重寫過的方法,使用“super.方法名(引數列表)”的形式呼叫。

例如:
Class Person
{public void print () {
System.out.println( 父類Person的print方法! );
}
}
class Student extends Person
{public void print () {
super.print(://訪問父類中被子類覆寫過的方法
System.out.println(" 子類Student的print方法!" );
}
}
public class OverrideExample02
{public static void main(String args[])
{Student s=new Student();
S.print();
}
}
執行結果:父類Person的print方法!
子類Student的print方法 !
如果要使用super關鍵字不一定非要在方法重寫之後使用,

也可以明確地表示某個方法是從父類中繼承而來的。使用super

只是更加明確的說,要從父類中查詢,就不在子類查找了。