java 多態(tài)實例代碼
多態(tài)是同一個行為具有多個不同表現(xiàn)形式或形態(tài)的能力。多態(tài)就是同一個接口,使用不同的實例而執(zhí)行不同操作。
多態(tài)性是對象多種表現(xiàn)形式的體現(xiàn),比如:
在現(xiàn)實中,我們按下F1鍵這個動作:
如果當前在Flash界面下彈出的就是AS 3的幫助文檔
如果當前在Word下彈出的就是Word幫助
在Windows下彈出的就是Windows幫助和支持
多態(tài)存在的三個必要條件
繼承
重寫
父類引用指向子類對象
Parent p = new Child();
當使用多態(tài)方式調用方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤;如果有,再去調用子類的同名方法。
例題
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(); 是多態(tài)的表示形式。父類對象調用了子類創(chuàng)建了Son對象。 base調用的method()方法就是調用了子類重寫的method()方法。 而此時base還是屬于Base對象,base調用methodB()時Base對象里沒有這個方法,所以編譯不通過。 要想調用的話需要先通過SON son=(SON)base;強制轉換,然后用son.methodB()調用。
總結
以上就是本文關于java 多態(tài)實例代碼的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關文章
Java實現(xiàn)創(chuàng)建運行時類的對象操作示例
這篇文章主要介紹了Java實現(xiàn)創(chuàng)建運行時類的對象操作,結合實例形式分析了Java動態(tài)創(chuàng)建對象的原理與相關實現(xiàn)技巧,需要的朋友可以參考下2018-08-08
mybatis-plus阻止全表更新與刪除的實現(xiàn)
BlockAttackInnerInterceptor 是mybatis-plus的一個內置攔截器,用于防止惡意的全表更新或刪除操作,本文主要介紹了mybatis-plus阻止全表更新與刪除的實現(xiàn),感興趣的可以了解一下2023-12-12
基于Java SSM實現(xiàn)在線點餐系統(tǒng)
本項目基于Java SSM框架實現(xiàn)在線點餐系統(tǒng),主要實現(xiàn)系統(tǒng)的在線點餐功能。文中的示例代碼講解詳細,感興趣的可以跟隨小編一起學習一下2022-02-02
Jedis零基礎入門及操作Redis中的數(shù)據(jù)結構詳解
Jedis 的 API 方法跟 Redis 的命令基本上完全一致,熟悉 Redis 的操作命令,自然就很容易使用 Jedis,因此官方也推薦 Java 使用 Jedis 來連接和操作 Redis2022-09-09
SpringBoot+Vue+Redis實現(xiàn)單點登錄(一處登錄另一處退出登錄)
小編接到一個需求,需要實現(xiàn)用戶在瀏覽器登錄后,跳轉到其他頁面,當用戶在其它地方又登錄時,前面用戶登錄的頁面退出登錄,這篇文章主要介紹了SpringBoot+Vue+Redis實現(xiàn)單點登錄,需要的朋友可以參考下2019-12-12

