• 一个饲养员给动物喂食物的例子体现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)//给猫喂鱼
        }
    }

  • 相关阅读:
    python 编码问题
    关于网页划词翻译
    clang 编译 c++
    Java流(Stream)操作实例筛选、映射、查找匹配
    JAVA系列笔记十八之nohup实现后台运行程序
    VSCode汇总
    java jdk 国内下载镜像地址及安装
    LocalDate、LocalDateTime与timestamp、Date的转换
    List.sort()排序功能
    Java Array、List、Set互相转化
  • 原文地址:https://www.cnblogs.com/javaitpx/p/2769318.html
Copyright © 2020-2023  润新知