博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 面向对象 之 多态实例2
阅读量:6417 次
发布时间:2019-06-23

本文共 1885 字,大约阅读时间需要 6 分钟。

转载于 :

/**    题目: 孩子吃 水果(苹果,葡萄,芒果,菠萝)    思路:        1. 抽象出类 : 孩子(Baby), 水果(Fruit)(苹果(Apple),葡萄(Grape),芒果(Mango))        2. 找出类的关系: 水果 -> 孩子   (苹果,葡萄,芒果) 是 水果的分类        3. 找出属性: 孩子(姓名,水果引用)          4. 找出方法: 孩子吃(eat)水果    子类->父类的转换 作用 :解耦 也就是降低类与类之间的耦合度 提供可扩展性*/public class Polymorphism3 {    public static void main(String[] args) {        //实例化一个Baby        Baby baby = new Baby("李明");        //实例化一个苹果 和 一个葡萄        Apple apple = new Apple("红富士");        Grape grape = new Grape("黑葡萄");        Mango mango = new Mango("大芒果");        PineApple pineApple = new PineApple("菠萝");        //李明吃苹果        baby.eat(apple);        System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName());        baby.eat(grape);        System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName());        baby.eat(mango);        System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName());        baby.eat(pineApple);        System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName());    }}class Baby {    private Fruit fruit;    private String name;    public Baby(String name) {        this.name = name;    }    public String getName() {        return this.name;    }    public Fruit getFruit() {        return this.fruit;    }    //吃水果    public void eat(Fruit fruit) {        this.fruit = fruit;    }}class Fruit {    private String name;    public Fruit(String name) {        this.name = name;    }    public String getName() {        return this.name;    }}class PineApple extends Fruit {    public PineApple(String name) {        super(name);    }}class Apple extends Fruit {    public Apple(String name) {        super(name);    }}class Grape extends Fruit {    public Grape(String name) {        super(name);    }}class Mango extends Fruit {    public Mango(String name) {        super(name);    }}

转载于 :

转载于:https://blog.51cto.com/11842410/2169258

你可能感兴趣的文章
使用sql生成UUID
查看>>
mysql日期函数(转)
查看>>
REST API用得也痛苦
查看>>
test for windows live writer plugins
查看>>
Tiny210 U-BOOT(二)----配置时钟频率基本原理
查看>>
读javascript高级程序设计14-错误处理与调试
查看>>
代理模式
查看>>
javaweb学习总结(二十四)——jsp传统标签开发
查看>>
让script的type属性等于text/html
查看>>
[Docker] Docker Machine intro
查看>>
HA 高可用软件系统保养指南
查看>>
linux 文件系统sysvinit 流程分析
查看>>
体素科技:2018年,算法驱动下的医学影像分析进展
查看>>
Vue 折腾记 - (8) 写一个挺靠谱的多地区选择组件
查看>>
VS Code折腾记 - (3) 多图解VSCode基础功能
查看>>
再不懂区块链,你就OUT了!
查看>>
教你玩转自定义View—手撸一个倒计时控件如此简单
查看>>
『翻译』Node.js 调试
查看>>
我的iOS开发之路总结(更新啦~)
查看>>
Java NIO之拥抱Path和Files
查看>>