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)//给猫喂鱼
        }
    }

  • 相关阅读:
    Java中继承的详细用法
    Java中继承的详细用法
    树莓派中安装QT
    qt在windows下的udp通信(最简单)
    qt+opencv对两幅图片进行融合
    浅谈QT打印功能实现
    qt中采用宽带speex进行网络语音通话实验程序
    实时预览的在线 Markdown 编辑器
    LigerUI一个前台框架增、删、改asp.net代码
    .NET MVC通过反射获取数据修
  • 原文地址:https://www.cnblogs.com/javaitpx/p/2769318.html
Copyright © 2011-2022 走看看