java饲养员喂动物_做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处...
做一個飼養員給動物喂食物的例子體現JAVA中的面向對象思想,接口(抽象類)的用處
interface Animal{
//動物的接口??? public void eat(Food food);
//接口中只有抽象的方法和靜態常量!這里void前面省略了abstract。同樣,變量可以省略static final}
class Cat implements Animal
//一種動物類:貓
{
public void eat(Food food)
//這里是對上面的接口中已經有的方法進行了覆蓋也叫重寫,這一步是必須的!??? {
System.out.println("小貓吃"+food.getName());
}
}
class Dog implements Animal
//一種動物類:狗{
public void eat(Food food)
//覆蓋??? {
System.out.println("小狗啃"+food.getName());
}
}
abstract class Food
//食物抽象類 。抽象類不能創建對象,這和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) {
//構造函數????? this.name = name;
}
}
class Bone extends Food
//一種食物類:骨頭,繼承了Food類{
public Bone(String name) {
//構造函數
this.name = name;
}
}
class Feeder
//飼養員類 ,這是個很一般的類。。。
{
public void feed(Animal animal,Food food)
//飼養員給某種動物喂某種食物??? {
animal.eat(food);
}
}
public class TestFeeder
//測試飼養員給動物喂食物
{
public static void main(String[] args) {
//這里順便說下,只有在public類中才有main函數!一個這樣的程序中也只有一個public類!????? Feeder feeder=new Feeder();
Animal animal=new Dog();
//animal引用Dog類對象????? Food food=new Bone("肉骨頭");
//這里創建父類引用子類對象,用food引用Bone對象
feeder.feed(animal,food);
//給狗喂肉骨頭
animal=new Cat();
//這里又將animal引用Cat類的對象????? food=new Fish("魚");
//同樣,用food引用Fish類對象,這和上面一樣,充分體現了food和 animal只是兩個方便引用的名稱,是通過這兩個名稱來引用對象的????? feeder.feed(animal,food);
//給貓喂魚
}
}
/*接口和繼承有什么相似和不同,我只是模糊的了解一些,卻說不太出來,也希望老師在講解這部分的時候能詳細些。至于java中的繼承和C++的繼承一比較,會發現JAVA只
支持單繼承,即只能繼承一個父類,而c++卻能繼承多個父類!但通過接口,java可以實現多個接口,接口也可以繼承接口。
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());? ??? }? }
總結
以上是生活随笔為你收集整理的java饲养员喂动物_做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2D游戏知识点二、Unity 2D游戏主
- 下一篇: CIO看待ERP