欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

效果實(shí)現(xiàn):

代碼實(shí)現(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();
? ? ? ? }

? ? }
? ? //捐獻(xiàn)
? ? 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、測(cè)試類:

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("請(qǐng)輸入您要領(lǐng)養(yǎng)的寵物:");
? ? ? ? String dname = sc.next();
? ? ? ? Pet p = master.adopt(dname);
? ? ? ? //主人給狗狗喂食,玩耍
? ? ? ? System.out.print("請(qǐng)輸入您要喂得食物:");
? ? ? ? String dfood = sc.next();
? ? ? ? master.feed(p,dfood);
? ? ? ? System.out.println(p.getHealth());
? ? ? ? master.play(p);

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

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

補(bǔ):這里測(cè)試類我是讓用戶在控制臺(tái)輸入,如果不想輸入,可將測(cè)試類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);

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

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

相關(guān)文章

  • 設(shè)計(jì)模式之責(zé)任鏈模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    設(shè)計(jì)模式之責(zé)任鏈模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

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

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

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

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

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

    Spring中的refreshContext源碼分析

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

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

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

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

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

    Spring Boot集成Kafka的示例代碼

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

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

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

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

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

    Spring中的事務(wù)隔離級(jí)別的介紹

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

最新評(píng)論