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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java饲养员喂动物_做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处...

發(fā)布時(shí)間:2023/12/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java饲养员喂动物_做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

做一個(gè)飼養(yǎng)員給動(dòng)物喂食物的例子體現(xiàn)JAVA中的面向?qū)ο笏枷?接口(抽象類)的用處

interface Animal{

//動(dòng)物的接口??? public void eat(Food food);

//接口中只有抽象的方法和靜態(tài)常量!這里void前面省略了abstract。同樣,變量可以省略static final}

class Cat implements Animal

//一種動(dòng)物類:貓

{

public void eat(Food food)

//這里是對(duì)上面的接口中已經(jīng)有的方法進(jìn)行了覆蓋也叫重寫,這一步是必須的!??? {

System.out.println("小貓吃"+food.getName());

}

}

class Dog implements Animal

//一種動(dòng)物類:狗{

public void eat(Food food)

//覆蓋??? {

System.out.println("小狗啃"+food.getName());

}

}

abstract class Food

//食物抽象類 。抽象類不能創(chuàng)建對(duì)象,這和C++一樣

{

protected String name;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

class Fish extends Food

//一種食物類:魚,繼承了Food類

{

public Fish(String name) {

//構(gòu)造函數(shù)????? this.name = name;

}

}

class Bone extends Food

//一種食物類:骨頭,繼承了Food類{

public Bone(String name) {

//構(gòu)造函數(shù)

this.name = name;

}

}

class Feeder

//飼養(yǎng)員類 ,這是個(gè)很一般的類。。。

{

public void feed(Animal animal,Food food)

//飼養(yǎng)員給某種動(dòng)物喂某種食物??? {

animal.eat(food);

}

}

public class TestFeeder

//測(cè)試飼養(yǎng)員給動(dòng)物喂食物

{

public static void main(String[] args) {

//這里順便說下,只有在public類中才有main函數(shù)!一個(gè)這樣的程序中也只有一個(gè)public類!????? Feeder feeder=new Feeder();

Animal animal=new Dog();

//animal引用Dog類對(duì)象????? Food food=new Bone("肉骨頭");

//這里創(chuàng)建父類引用子類對(duì)象,用food引用Bone對(duì)象

feeder.feed(animal,food);

//給狗喂肉骨頭

animal=new Cat();

//這里又將animal引用Cat類的對(duì)象????? food=new Fish("魚");

//同樣,用food引用Fish類對(duì)象,這和上面一樣,充分體現(xiàn)了food和 animal只是兩個(gè)方便引用的名稱,是通過這兩個(gè)名稱來引用對(duì)象的????? feeder.feed(animal,food);

//給貓喂魚

}

}

/*接口和繼承有什么相似和不同,我只是模糊的了解一些,卻說不太出來,也希望老師在講解這部分的時(shí)候能詳細(xì)些。至于java中的繼承和C++的繼承一比較,會(huì)發(fā)現(xiàn)JAVA只

支持單繼承,即只能繼承一個(gè)父類,而c++卻能繼承多個(gè)父類!但通過接口,java可以實(shí)現(xiàn)多個(gè)接口,接口也可以繼承接口。

ps:將上面的題目接口的部分改成繼承也是可以的,很容易。。。如下abstract class Animal{

public abstract void eat(Food food);

}

class Cat extends Animal

{

public void eat(Food food)

{

System.out.println("小貓吃"+food.getName());

}

}

class Dog extends Animal? {? ??? public void eat(Food food)? ??? {? ????? System.out.println("小狗啃"+food.getName());? ??? }? }

總結(jié)

以上是生活随笔為你收集整理的java饲养员喂动物_做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。