zoukankan      html  css  js  c++  java
  • 一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处

    package com.softeem.demo;

    /**
     *@author leno
     *动物的接口
     */
    interface Animal {
        public void eat(Food food);
    }

    /**
     *@author leno
     *一种动物类:猫
     */
    class Cat implements Animal {
        public void eat(Food food) {
            System.out.println("小猫吃" + food.getName());
        }
    }

    /**
     *@author leno
     *一种动物类:狗
     */
    class Dog implements Animal {
        public void eat(Food food) {
            System.out.println("小狗啃" + food.getName());
        }
    }

    /**
     *@author leno
     *食物抽象类
     */
    abstract class Food {
        protected String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }

    /**
     *@author leno
     *一种食物类:鱼
     */
    class Fish extends Food {
        public Fish(String name) {
            this.name = name;
        }
    }

    /**
     *@author leno
     *一种食物类:骨头
     */
    class Bone extends Food {
        public Bone(String name) {
            this.name = name;
        }
    }

    /**
     *@author leno
     *饲养员类
     *广州达内科技http://www.gztarena.com/
     */
    class Feeder {
        /**
         *饲养员给某种动物喂某种食物
         *@param animal
         *@param food
         */
        public void feed(Animal animal, Food food) {
            animal.eat(food);
        }
    }

    /**
     *@author leno
     *测试饲养员给动物喂食物
     */
    public class TestFeeder {
        public static void main(String[] args) {
            Feeder feeder = new Feeder();
            Animal animal = new Dog();
            Food food = new Bone("肉骨头");
            feeder.feed(animal, food)//给狗喂肉骨头
            animal = new Cat();
            food = new Fish("鱼");
            feeder.feed(animal, food)//给猫喂鱼
        }
    }

  • 相关阅读:
    CentOS6.2编译安装Nginx1.2.0
    mysql之主从复制篇
    CentOS6.2编译安装PHP5.4.0
    c# 多线程 编程
    QQ空间及邮箱验证码登录的校验方式及自动登录的解决方案
    C# 动态编译、动态执行、动态调试
    在Visual C#中用ListView显示数据记录
    推荐一个免费的HTTP抓包分析工具 Fiddler Web Debugger
    C#简繁体转换方法(Microsoft.Office.Interop.Word)
    C#读取字符串类型XML
  • 原文地址:https://www.cnblogs.com/javaitpx/p/2769318.html
Copyright © 2011-2022 走看看