最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java多態(tài)實現(xiàn)電子寵物系統(tǒng)

 更新時間:2022年02月24日 12:28:59   作者:??悲宸???  
這篇文章主要為大家詳細介紹了java多態(tài)實現(xiàn)電子寵物系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java多態(tài)實現(xiàn)電子寵物系統(tǒng)的具體代碼,供大家參考,具體內容如下

效果實現(xiàn):

代碼實現(xiàn):

1、主人類:

public class Master {
? ? //領養(yǎng)
? ? public Pet adopt(String name){
? ? ? ? if ("狗狗".equals(name)){
? ? ? ? ? ? return new Dog();
? ? ? ? }else if (name.equals("企鵝")){
? ? ? ? ? ? return new Penguin();
? ? ? ? }
? ? ? ? return null;
? ? }
? ? //喂食
? ? public void feed(Pet pet, String food){
? ? ? ? pet.eat(food);
? ? }

? ? //玩耍
? ? public void play(Pet pet){
? ? ? ? if(pet instanceof Dog){
? ? ? ? ? ? Dog d= (Dog) pet;
? ? ? ? ? ? d.catchDisk();
? ? ? ? }else if(pet instanceof Penguin){
? ? ? ? ? ? Penguin p= (Penguin) pet;
? ? ? ? ? ? p.swimInSouth();
? ? ? ? }

? ? }
? ? //捐獻
? ? public Pet donate(String name){
? ? ? ? if("狗狗".equals(name)){
? ? ? ? ? ? return new Dog();
? ? ? ? }else if(name.equals("企鵝")){
? ? ? ? ? ? return new Penguin();
? ? ? ? }
? ? ? ? return null;
? ? }
}

2、狗狗類:

public class Dog extends Pet {
? ? public void catchDisk(){
? ? ? ? System.out.println("狗狗接飛盤!");
? ? }

? ? public Dog(int health) {
? ? ? ? super(health);
? ? }

? ? public Dog() {
? ? }

? ? @Override
? ? public void eat(String food) {
? ? ? ? System.out.println("狗狗吃"+food+",吃飽后健康值+3");
? ? ? ? setHealth(getHealth()+3);
? ? }
}

3、企鵝類:

public class Penguin extends Pet{
? ? public void swimInSouth(){
? ? ? ? System.out.println("企鵝在南極游泳!");
? ? }

? ? public Penguin(int health) {
? ? ? ? super(health);
? ? }
? ? public Penguin() {
? ? }
? ? @Override
? ? public void eat(String food) {
? ? ? ? System.out.println("企鵝寶寶吃"+food+",吃完后,健康值加5");
? ? ? ? setHealth(getHealth()+5);
? ? }
}

4、寵物類,Pet:

public class Pet {
? ? private int health;

? ? public int getHealth() {
? ? ? ? return health;
? ? }

? ? public void setHealth(int health) {
? ? ? ? this.health = health;
? ? ? ? if(this.health>100){
? ? ? ? ? ? this.health=100;
? ? ? ? ? ? System.out.println("已經吃飽了,再吃就撐破了");
? ? ? ? }
? ? }

? ? public Pet() {
? ? }

? ? public Pet(int health) {
? ? ? ? this.health = health;
? ? }

? ? public void eat(String food){
? ? ? ? System.out.println("寵物吃"+food);
? ? }
}

5、測試類:

public class Test {
? ? public static void main(String[] args) {
? ? ? ? Scanner sc = new Scanner(System.in);
? ? ? ? Master master = new Master();
? ? ? ? //領養(yǎng)
? ? ? ? System.out.print("請輸入您要領養(yǎng)的寵物:");
? ? ? ? String dname = sc.next();
? ? ? ? Pet p = master.adopt(dname);
? ? ? ? //主人給狗狗喂食,玩耍
? ? ? ? System.out.print("請輸入您要喂得食物:");
? ? ? ? String dfood = sc.next();
? ? ? ? master.feed(p,dfood);
? ? ? ? System.out.println(p.getHealth());
? ? ? ? master.play(p);

? ? ? ? //主人給企鵝喂食,玩耍
? ? ? ? System.out.print("請輸入您要玩的寵物:");
? ? ? ? String pname = sc.next();
? ? ? ? p = master.adopt(pname);
? ? ? ? System.out.print("請輸入您要喂的食物:");
? ? ? ? String pfood = sc.next();
? ? ? ? master.feed(p,pfood);
? ? ? ? System.out.println(p.getHealth());
? ? ? ? master.play(p);

? ? ? ? //捐贈出去
? ? ? ? System.out.print("請輸入您要捐贈的寵物:");
? ? ? ? String jname = sc.next();
? ? ? ? Pet pet = master.donate(jname);
? ? ? ? System.out.println();
? ? ? ? System.out.println("您捐獻的是:"+pet.getClass().getName());
? ? }
}

補:這里測試類我是讓用戶在控制臺輸入,如果不想輸入,可將測試類Test換成下面的代碼:

public class TestPet {
? ? public static void main(String[] args) {
? ? ? ? Master m = new Master();
? ? ? ? //領養(yǎng)
? ? ? ? Pet p = m.adopt("狗狗");
? ? ? ? //主人給狗狗喂食,玩耍
? ? ? ? m.feed(p,"大骨頭");
? ? ? ? System.out.println(p.getHealth());
? ? ? ? m.play(p);

? ? ? ? //主人給企鵝喂食,玩耍
? ? ? ? p = m.adopt("企鵝");
? ? ? ? m.feed(p,"小魚");
? ? ? ? System.out.println(p.getHealth());
? ? ? ? m.play(p);

? ? ? ? //捐獻出去
? ? ? ? Pet pet = m.donate("狗狗");
? ? ? ? System.out.println("您捐獻的是:"+pet.getClass().getName());
? ? }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • SpringCloud通過MDC實現(xiàn)分布式鏈路追蹤

    SpringCloud通過MDC實現(xiàn)分布式鏈路追蹤

    在DDD領域驅動設計中,我們使用SpringCloud來去實現(xiàn),但排查錯誤的時候,通常會想到Skywalking,但是引入一個新的服務,增加了系統(tǒng)消耗和管理學習成本,對于大型項目比較適合,但是小的項目顯得太過臃腫了,所以本文介紹了SpringCloud通過MDC實現(xiàn)分布式鏈路追蹤
    2024-11-11
  • logback的UNDEFINED_PROPERTY屬性源碼執(zhí)行流程解讀

    logback的UNDEFINED_PROPERTY屬性源碼執(zhí)行流程解讀

    這篇文章主要為大家介紹了logback的UNDEFINED_PROPERTY屬性源碼執(zhí)行流程解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • java自定義jar包讓jmeter使用的方法

    java自定義jar包讓jmeter使用的方法

    在本篇文章里小編給大家整理了一篇關于java自定義jar包讓jmeter使用的方法以及實例代碼,需要的朋友們參考下。
    2019-10-10
  • Spring整合Dubbo框架過程及原理解析

    Spring整合Dubbo框架過程及原理解析

    這篇文章主要介紹了Spring整合Dubbo框架過程及原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Mybatis注解開發(fā)@Select執(zhí)行參數和執(zhí)行sql語句的方式(最新詳解)

    Mybatis注解開發(fā)@Select執(zhí)行參數和執(zhí)行sql語句的方式(最新詳解)

    @Select 是 Mybatis 框架中的一個注解,用于執(zhí)行 SQL 查詢語句,并把查詢結果映射到指定的 Java 對象中,這篇文章主要介紹了Mybatis注解開發(fā)@Select執(zhí)行參數和執(zhí)行sql語句的方式,需要的朋友可以參考下
    2023-07-07
  • Java 使用 Graphql 搭建查詢服務詳解

    Java 使用 Graphql 搭建查詢服務詳解

    這篇文章主要介紹了Java 使用 Graphql 搭建查詢服務詳解的相關資料,需要的朋友可以參考下
    2016-12-12
  • 智能手表開發(fā)API接口

    智能手表開發(fā)API接口

    這篇文章主要介紹了智能手表開發(fā)API接口,使用圖靈機器人平臺接口實現(xiàn)天氣預報,非常簡單實用,這里推薦給大家。
    2015-03-03
  • 使用String類型小數值轉換為Long類型

    使用String類型小數值轉換為Long類型

    這篇文章主要介紹了使用String類型小數值轉換為Long類型操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java8 用Lambda表達式給List集合排序的實現(xiàn)

    Java8 用Lambda表達式給List集合排序的實現(xiàn)

    這篇文章主要介紹了Java8 用Lambda表達式給List集合排序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • ThreadLocal的內存泄露問題

    ThreadLocal的內存泄露問題

    這篇文章主要介紹了Java中ThreadLocal的內存泄露問題,以及為什么會出現(xiàn)內存泄漏,感興趣的小伙伴可以參考閱讀
    2023-03-03

最新評論

长宁县| 嘉兴市| 惠安县| 礼泉县| 澄江县| 蒲城县| 隆回县| 新巴尔虎右旗| 改则县| 丹江口市| 泽库县| 屯门区| 内黄县| 奇台县| 朔州市| 沁水县| 丰台区| 泌阳县| 女性| 永吉县| 新源县| 西和县| 华阴市| 灌南县| 浪卡子县| 阳江市| 绩溪县| 宜城市| 搜索| 桐乡市| 明溪县| 汕头市| 龙海市| 阳东县| 牡丹江市| 西乡县| 右玉县| 弥渡县| 芦山县| 奉贤区| 区。|