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("⼩猫吃"+Name());
}
}
class Dog implements Animal
//⼀种动物类:狗{
public void eat(Food food)
//覆盖 {
System.out.println("⼩狗啃"+Name());
}
}
abstract class Food
//⾷物抽象类 。抽象类不能创建对象,这和C++⼀样
{
protected String name;
public String getName() {
return name;
安格鲁貂多少钱一只}
public void tName(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("⼩猫吃"+Name());
}
}
class Dog extends Animal { public void eat(Food food) { System.out.println("⼩狗啃"+Name()); } }