日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java中多态,instanceof关键字

發布時間:2025/3/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中多态,instanceof关键字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多態:

面向對象三大特征:繼承、封裝、多態,其中多態指的是有多種形態,可以使代碼更加靈活,而非狀態。繼承或接口是多態的前提,比如一個對象狗是寵物類的實現類對象,而寵物類又繼承了動物類,狗同時具有多種形態:寵物,動物等。

public class Multiplestate{public static void main(String[] args){// 1:代碼中體現多態性:左邊父類引用指向右邊子類對象,其多態格式:父類名稱 對象名 = new 子類名稱();或 接口名稱 對象名 = new 實現類名稱();Fatherclass multiplestateObj = new Sonclass();//左邊父類Fatherclass的引用指向右邊子類對象multiplestateObj.method();//子類中的方法執行了// 5:通過子類創建的對象訪問父類中的特有方法:multiplestateObj.methodOfFatherClass();//父類中的特有方法執行了,當子類中沒有該方法時,會向父類查找該方法System.out.println(multiplestateObj.num);//5,訪問成員變量時,如果父類和子類中成員變量同名,在實現類中訪問同名的成員變量,創建對象時等號左邊是誰,就會訪問誰的值} }; // 2.定義一個父類Fatherclass,并在里面定義一個方法method: public class Fatherclass{public void method(){System.out.println("父類中的方法執行了");}// 4.定義一個父類特有的方法:methodOfFatherClass:public void methodOfFatherClass(){System.out.println("父類中的特有方法執行了");};int num = 5; } // 3:定義一個子類Son,并繼承父類Fatherclass,且覆蓋重寫父類中的方法: public class Sonclass extends Fatherclass{@Overridepublic void method(){System.out.println("子類中的方法執行了");}int num = 10; }

對象的向上轉型:起始其實就是多態的寫法,其格式:父類名稱 對象名 = new 子類名稱();其含義:右邊創建一個子類對象,把它當做父類看待使用。注意:一定是小范圍向大范圍轉型,且是安全的,但是,對象一旦向上轉型后,就不能調用子類中特有的方法了,如果想要使用子類中特有的方法,那么就要使用對象的向下轉型進行還原;

對象的向下轉型:對象的向下轉型實際是對象的還原動作,其含義:將父類對象還原成本來的子類對象;其格式:子類名稱 對象名 = (子類名稱) 父類對象名稱;一個父類對象下面可能會有多個子類對象,此時還原的時候不能還原為其它子類對象,否則會報錯,一定要還原為原有的子類。

// 1.創建一個抽象父類:FatherClass: public abstract class FatherClass{public abstract void method(); } // 2.創建一個子類:SonClass: public class SonClass extends FatherClass{// 覆蓋重寫父類中method方法:@Overridepublic void method(){System.out.println("子類中和父類中同名的重寫方法執行了");}// 定義一個獨有的方法:public void method2(){System.out.println("子類中獨有的方法執行了");} } // 5.創建另一個子類:SonOtherClass: public class SonOtherClass extends FatherClass{// 覆蓋重寫父類中method方法:@Overridepublic void method(){System.out.println("子類中和父類中同名的重寫方法執行了");}// 定義一個獨有的方法:public void method3(){System.out.println("另一個子類中獨有的方法執行了");} } // 3.定義一個UseObj類來測試對象的向上轉型: public class UseObj{public static void main(String[] args){// 對象向上轉型:FatherClass objup = new SonClass();objup.method();//子類中方法執行了// objup.method2();//報錯,對象一旦向上轉型后,就不能調用子類中特有的方法了。// 4.向下轉型還原:SonClass objdown = (SonClass) objup;objdown.method2();//子類中獨有的方法執行了,此時調用子類中獨有方法就不會報錯了// 6.錯誤的向下轉型(類似數據的強制轉換中精度損失):SonOtherClass objerrordown = (SonOtherClass) objup;//正常編譯,運行有異常:Exception in thread "main" java.lang.ClassCastException: SonClass cannot be cast to SonOtherClass at UseObj.main(UseObj.java:15)objerrordown.method3();} }

instanceof關鍵字:此關鍵字用來判斷一個對象是否屬于某類,返回一個布爾值;其格式為:對象 instanceof 類名稱;

提示:本文圖片等素材來源于網絡,若有侵權,請發郵件至郵箱:810665436@qq.com聯系筆者刪除。
筆者:苦海

總結

以上是生活随笔為你收集整理的java中多态,instanceof关键字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。