亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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)的具體代碼,供大家參考,具體內(nèi)容如下

效果實現(xiàn):

代碼實現(xiàn):

1、主人類:

public class Master {
? ? //領(lǐng)養(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("已經(jīng)吃飽了,再吃就撐破了");
? ? ? ? }
? ? }

? ? 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();
? ? ? ? //領(lǐng)養(yǎng)
? ? ? ? System.out.print("請輸入您要領(lǐng)養(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();
? ? ? ? //領(lǐng)養(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());
? ? }
}

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

相關(guān)文章

  • 設(shè)計模式之責任鏈模式_動力節(jié)點Java學院整理

    設(shè)計模式之責任鏈模式_動力節(jié)點Java學院整理

    這篇文章主要為大家詳細介紹了設(shè)計模式之責任鏈模式的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • java實現(xiàn)科研信息管理系統(tǒng)

    java實現(xiàn)科研信息管理系統(tǒng)

    這篇文章主要為大家詳細介紹了java科研信息管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • MyBatis 接收數(shù)據(jù)庫中沒有的字段的解決

    MyBatis 接收數(shù)據(jù)庫中沒有的字段的解決

    這篇文章主要介紹了MyBatis 接收數(shù)據(jù)庫中沒有的字段的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Spring中的refreshContext源碼分析

    Spring中的refreshContext源碼分析

    這篇文章主要介紹了Spring中的refreshContext源碼分析,在SpringBoot啟動流程中,主要的兩個階段是初始化SpringApplication對象以及SpringApplication.run方法執(zhí)行的內(nèi)容,今天主要細講的是SpringApplication.run中的刷新容器refreshContext方法,需要的朋友可以參考下
    2023-12-12
  • 了解spring中的CloudNetflix Hystrix彈性客戶端

    了解spring中的CloudNetflix Hystrix彈性客戶端

    這篇文章主要介紹了了解spring中的CloudNetflix Hystrix彈性客戶端,客戶端彈性模式是在遠程服務發(fā)生錯誤或表現(xiàn)不佳時保護遠程資源(另一個微服務調(diào)用或者數(shù)據(jù)庫查詢)免于崩潰。,需要的朋友可以參考下
    2019-06-06
  • Java 添加超鏈接到 Word 文檔方法詳解

    Java 添加超鏈接到 Word 文檔方法詳解

    這篇文章主要介紹了Java 添加超鏈接到 Word 文檔方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Spring Boot集成Kafka的示例代碼

    Spring Boot集成Kafka的示例代碼

    本篇文章主要介紹了Spring Boot集成Kafka的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Java深入講解Object類常用方法的使用

    Java深入講解Object類常用方法的使用

    前面java繼承中說到的Object類是java中一個特殊的類,所有的類都是直接或者間接的繼承自O(shè)bject類,即如果某個類沒有使用extends關(guān)鍵字則默認是java.lang.Object類的子類,所以所有的類都可以使用Object類中定義的方法,下面介紹Object類的常用方法
    2022-04-04
  • SpringBoot整合easyExcel實現(xiàn)CSV格式文件的導入導出

    SpringBoot整合easyExcel實現(xiàn)CSV格式文件的導入導出

    這篇文章主要為大家詳細介紹了SpringBoot整合easyExcel實現(xiàn)CSV格式文件的導入導出,文中的示例代碼講解詳細,具有一定的參考價值,感興趣的小伙伴可以參考下
    2024-02-02
  • Spring中的事務隔離級別的介紹

    Spring中的事務隔離級別的介紹

    今天小編就為大家分享一篇關(guān)于Spring中的事務隔離級別的介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評論