日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java的多态性学习代码

發布時間:2025/3/20 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java的多态性学习代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 1、下面的代碼是定義一個抽象類Shape,然后Circel和Square類繼承Shape類,實現Shape中的方法MianJi();??
  • ??
  • public?class?ShapeDemo?{??
  • ????public?static?void?main(String[]?args)?{??
  • ??????
  • ????//向上轉型,創建一個父類Shape的引用,讓引用指向子類??
  • ????????Shape?shape?=??new?Square(2);??
  • ??????????
  • ????????//如果shape引用的對象是Square類型的對象,返回true,否則為false??
  • ????????if(shape?instanceof?Square)?{??
  • ??????????????
  • ????????????//將shape對象想下轉型為子類的對象??
  • ????????????Square?square?=?(Square)shape;??
  • ??????????????
  • ????????????//在show方法中,以子類對象sqaure為參數,求出求出子類的面積??
  • ????????????show(square);??
  • ????????}??
  • ???????????
  • ????????//向上轉型,創建父類的引用,指向子類Circel的對象??
  • ????????Shape?shape1?=?new?Circle(2);??
  • ????????//在show方法中,以父類Shape1參數調用方法,求出子類的面積??
  • ????????show(shape1);??
  • ??????????
  • ??????????
  • ??????????
  • ??????????
  • ??????????
  • }??
  • ??????
  • //定義靜態方法show來調用父類或則子類的MianJi()方法??
  • public?static?void?show(Shape?s)?{??
  • ????????s.MianJi();??
  • }??
  • ??
  • }??
  • ??
  • //定義一個抽象類Shpe,給出抽象方法MianJi,不給出具體實現??
  • abstract?class?Shape{??
  • ????float?r;??
  • ??????
  • ????abstract?void?MianJi();??
  • }??
  • ??
  • ??
  • ??????
  • //定義一個Square正方形類,繼承父類Shape類,給出父類MainJi方法的具體實現??
  • class?Square?extends?Shape{??
  • ????//定義參數邊長??
  • ????float?r;??
  • ??????
  • ????//默認參數構造方法來初始化Square,??
  • ????Square(float?r){??
  • ????????super();??
  • ????????this.r?=?r;??
  • ????}??
  • ??????
  • ????//求出正方形的面積??
  • ????void??MianJi()?{??
  • ????????System.out.println(?"我是正方形,面積是:"?+r?*?r);??
  • ????}??
  • }??
  • ??
  • //定義圓類,繼承父類Shape??
  • class?Circle?extends?Shape{??
  • ????//定義參數半徑??
  • ????float?r;??
  • ??????
  • ????//構造方法初始化??
  • ????Circle(float?r){??
  • ????????super();??
  • ????????this.r?=?r;??
  • ????}??
  • ??????
  • ????//求出圓的面積??
  • ????void?MianJi(){??
  • ????????System.out.println("我是圓形,面積是:"?+3.14?*?r?*r);??
  • ????} ?
  • }
  • 運行結果:??
  • 我是正方形,面積是:4.0??
  • 我是圓形,面積是:12.56 ?


  • 2.定義一個Animal父類,子類Cat和Dog繼承Animal類??
  • public?class?Demo{??
  • ????public?static?void?main(String[]?args)?{??
  • ??????show(new?Cat());??//?以?Cat?對象調用?show?方法??
  • ??????show(new?Dog());??//?以?Dog?對象調用?show?方法??
  • ??????????????????
  • ??????Animal?a?=?new?Cat();??//?向上轉型????
  • ??????a.eat();???????????????//?調用的是?Cat?的?eat??
  • ??????Cat?c?=?(Cat)a;????????//?向下轉型????
  • ??????c.work();????????//?調用的是?Cat?的?work??
  • ??????????
  • ??}????
  • ??????????????
  • ????public?static?void?show(Animal?a)??{??
  • ??????a.eat();????
  • ????????//?類型判斷??
  • ????????if?(a?instanceof?Cat)??{??//?貓做的事情???
  • ????????????Cat?c?=?(Cat)a;????
  • ????????????c.work();????
  • ????????}???
  • ????else?if?(a?instanceof?Dog)?{?//?狗做的事情???
  • ????????????Dog?c?=?(Dog)a;????
  • ????????????c.work();????
  • ????????}????
  • ????}????
  • }??
  • ???
  • //定義一個抽象Animal類,為父類??
  • abstract?class?Animal?{????
  • ????//定義一個抽象的父類eat方法,子類必須具體實現這個方法??
  • ????abstract?void?eat();????
  • }????
  • ????
  • //繼承父類Animal??
  • class?Cat?extends?Animal?{????
  • ????//實現父類的抽象方法??
  • ????public?void?eat()?{????
  • ????????System.out.println("我是貓,?吃魚");????
  • ????}????
  • ????//定義子類自己的方法??
  • ????public?void?work()?{????
  • ????????System.out.println("我是貓,抓老鼠");????
  • ????}????
  • }????
  • ????
  • //繼承父類Animal,實現自己的方法??
  • class?Dog?extends?Animal?{????
  • ????//實現父類的方法??
  • ????public?void?eat()?{????
  • ????????System.out.println("我是狗,吃骨頭");????
  • ????}????
  • ????//定義自己的方法??
  • ????public?void?work()?{????
  • ????????System.out.println("我是狗,看家");????
  • ????}????
  • }

  • 我是貓,?吃魚??
  • 我是貓,抓老鼠??
  • 我是狗,吃骨頭??
  • 我是狗,看家??
  • 我是貓,?吃魚??
  • 我是貓,抓老鼠 ?

  • 總結

    以上是生活随笔為你收集整理的java的多态性学习代码的全部內容,希望文章能夠幫你解決所遇到的問題。

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