300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java饲养员喂动物_做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想 接口(

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

时间:2019-03-23 06:01:58

相关推荐

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中的面向对象思想 接口(抽象类)的用处...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。