做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处
来源:互联网 发布:etf自动套利交易软件 编辑:程序博客网 时间:2024/06/10 04:50
做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处
interface Animal{ //动物的接口
public void eat(Food food); //接口中只有抽象的方法和静态常量!这里void前面省略了abstract。同样,变量可以省略static final
}
public void eat(Food food); //接口中只有抽象的方法和静态常量!这里void前面省略了abstract。同样,变量可以省略static final
}
class Cat implements Animal //一种动物类:猫
{
public void eat(Food food) //这里是对上面的接口中已经有的方法进行了覆盖也叫重写,这一步是必须的!
{
System.out.println("小猫吃"+food.getName());
}
}
{
public void eat(Food food) //这里是对上面的接口中已经有的方法进行了覆盖也叫重写,这一步是必须的!
{
System.out.println("小猫吃"+food.getName());
}
}
class Dog implements Animal //一种动物类:狗
{
public void eat(Food food) //覆盖
{
System.out.println("小狗啃"+food.getName());
}
}
{
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;
}
}
{
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;
}
}
{
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 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); //给猫喂鱼
}
}
{
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);
}
支持单继承,即只能继承一个父类,而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());
}
}
{
public void eat(Food food)
{
System.out.println("小猫吃"+food.getName());
}
}
class Dog extends Animal
{
public void eat(Food food)
{
System.out.println("小狗啃"+food.getName());
}
}
{
public void eat(Food food)
{
System.out.println("小狗啃"+food.getName());
}
}
- 做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处
- 一个例子体现JAVA中的面向对象思想,接口(抽象类)的用处
- 举例说明java面向对象思想的体现:抽象类、接口
- 写个简单例子人吃饭,体现面向对象编程,包含接口,抽象类的用处。
- javascript中面向对象思想的体现(一)
- java面向对象思想之接口、抽象
- COM思想很好的体现了面向接口编程思想。
- 一个体现Java接口及工厂模式优点的例子
- 一个体现Java接口及工厂模式优点的例子
- 一个体现Java接口及工厂模式优点的例子
- 一个体现Java接口及工厂模式优点的例子
- 一个体现Java接口及工厂模式优点的例子
- 一个体现Java接口及工厂模式优点的例子
- Java面向对象思想、类、抽象类、多态、接口
- Java千百问_05面向对象(003)_java中抽象概念如何体现的
- java中的面向对象的误区之接口与抽象类的区别
- 一个体现Java接口及工厂模式优点的例子(经典)
- Java面向对象高级--抽象类与接口的应用
- 常用代码
- C#中正则表达式的使用实例
- JVM调优总结(一)--基本概念
- 我在互联网创业失败的启思录 (二)–--敢梦想,敢追寻
- 解决IE不支持Data.parse()的问题
- 做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处
- Linux Shell 通配符、元字符、转义符
- gml文件格式解析程序之头文件
- JVM调优总结(二)--垃圾回收
- Mysql Merge表的使用注意事项和优点介绍
- eclipse在debug调试时因Android Dependencies而Source not found的解决办法
- Ubuntu12.04 android开发环境搭建(配置minicom TFTP NFS java版本切换)
- Android 自动更新(模拟服务器)
- CDialogBar的创建和使用 (转载自百度文库)