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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【案例 4-2】饲养员喂养动物

發布時間:2023/12/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【案例 4-2】饲养员喂养动物 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【案例目標】

  • 案例描述
    飼養員在給動物喂食時,給不同的動物喂不同的食物,而且在每次喂食時,動物都會發
    出歡快的叫聲。例如,給小狗喂骨頭,小狗會汪汪叫;給小貓喂食,小貓會喵喵叫。
    本案例要求編寫一個程序模擬飼養員喂食動物的過程,案例要求如下:
    (1) 飼養員給小狗喂骨頭,小狗汪汪叫。
    (2) 飼養員給小貓喂小魚,小貓喵喵叫。
  • 運行結果
  • 【案例目標】

    ? 學會分析“飼養員喂養動物”程序設計的實現思路。
    ? 根據思路獨立完成“飼養員喂養動物”程序設計的源代碼編寫、編譯及運行。
    ? 學會靈活運用接口解決多繼承問題。

    【案例分析】

    在這個動物園里,涉及的對象有飼養員,各種不同動物以及各種不同的食物。這樣很容
    易抽象出 3 個類 Feeder、Animal 和 Food。假設只考慮貓類和狗類動物,則由 Animal 類派生
    出 Cat 類、Dog 類、同樣由 Food 類可以進一步派生出其子類 Bone、Fish。因為他們之間存
    在這明顯的 is-a 關系。

    同樣的,魚是一種食物,但實際上,魚也是一種動物,Cat 類和 Dog 類繼承了 Animal 的
    很多屬性和方法,如果將 Animal 定義為接口,Animal 中是不能定義成員變量和成員方法的,
    Food 類中雖然也有變量但是數量比 Animal 少,所以我們考慮將 Food 定義為接口,此時可
    以說“魚是一種動物,同時也是一種食物”。

    【案例實現】

    abstract class Animal {private String name;public Animal(String name) {this.name = name;}public abstract void shout();public abstract void eat(Food food);public String getName() {return name;}public void setName(String name) {this.name = name;} }class Dog extends Animal {public Dog(String name) {super(name);}@Overridepublic void shout() {System.out.print("汪汪汪~~~");}@Overridepublic void eat(Food food) {System.out.println(super.getName() + "正在吃著香噴噴的" + food.getName());} }class Cat extends Animal {public Cat(String name) {super(name);}public void shout() {System.out.print("喵喵喵~~~");}public void eat(Food food) {System.out.println(super.getName() + "正在吃著香噴噴的" + food.getName());} }interface Food {public abstract String getName(); }class Bone implements Food {@Overridepublic String getName() {return "骨頭";} }class Fish extends Animal implements Food {public Fish(String name) {super(name);}@Overridepublic void shout() {System.out.print("咕嚕嚕~~~");}@Overridepublic void eat(Food food) {System.out.println(super.getName() + "正在吃著香噴噴的" + food.getName());} }class Feeder {private String name;public Feeder(String name) {this.name = name;}public void speak() {System.out.println("歡迎來到動物園!");System.out.println("我是飼養員," + this.name);}public void feed(Animal a, Food food) {a.eat(food);}public String getName() {return name;}public void setName(String name) {this.name = name;} }public class DongWuTest {public static void main(String[] args) {Feeder feeder = new Feeder("小華");feeder.speak();Dog dog = new Dog("小狗");dog.shout();Food food = new Bone();feeder.feed(dog, food);Cat cat = new Cat("小貓");cat.shout();food = new Fish("黃花魚");feeder.feed(cat, food);} }

    總結

    以上是生活随笔為你收集整理的【案例 4-2】饲养员喂养动物的全部內容,希望文章能夠幫你解決所遇到的問題。

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