多態是同一個行為具有多個不同表現形式或形態的能力。多態就是同一個接口,使用不同的實例而執行不同操作。
多態性是對象多種表現形式的體現,比如:
在現實中,我們按下F1鍵這個動作:
如果當前在Flash界面下彈出的就是AS 3的幫助文檔
如果當前在Word下彈出的就是Word幫助
在Windows下彈出的就是Windows幫助和支持
多態存在的三個必要條件
繼承
重寫
父類引用指向子類對象
Parent p = new Child();
當使用多態方式調用方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤;如果有,再去調用子類的同名方法。
例題
package Wangyi;
class Base
{
public void method()
{
System.out.println("Base");
}
}
class Son extends Base
{
public void method()
{
System.out.println("Son");
}
public void methodB()
{
System.out.println("SonB");
}
}
public class Test01
{
public static void main(String[] args)
{
Base base = new Son();
base.method();
base.methodB();
}
}
問這個程序的輸出結果。(D)
A. Base SonB B. Son SonB C. Base Son SonB D.編譯不通過 解釋: Base base=new Son(); 是多態的表示形式。父類對象調用了子類創建了Son對象。 base調用的method()方法就是調用了子類重寫的method()方法。 而此時base還是屬于Base對象,base調用methodB()時Base對象里沒有這個方法,所以編譯不通過。 要想調用的話需要先通過SON son=(SON)base;強制轉換,然后用son.methodB()調用。
總結
以上就是本文關于java 多態實例代碼的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。