Java 面向对象 之 多态实例1「建议收藏」

Java 面向对象 之 多态实例1「建议收藏」Java 面向对象 之 多态实例1

大家好,又见面了,我是你们的朋友全栈君。

转载于 : http://www.verejava.com/?id=16992843565554

/**
    题目: 孩子吃(苹果,葡萄,芒果)

    思路:
        1. 抽象出类 : 孩子(Baby), 苹果(Apple),葡萄(Grape)
        2. 找出类的关系: 苹果,葡萄 -> 孩子
        3. 找出属性: 孩子(姓名,苹果引用,葡萄引用)  苹果(名称)  葡萄(名称)
        4. 找出方法: 孩子吃(eat)苹果或者葡萄
*/
public class Polymorphism2 {

    public static void main(String[] args) {
        //实例化一个Baby
        Baby baby = new Baby("李明");

        //实例化一个苹果 和 一个葡萄
        Apple apple = new Apple("红富士");
        Grape grape = new Grape("黑葡萄");
        Mango mango = new Mango("大芒果");

        //李明吃苹果和葡萄
        baby.eat(apple);
        System.out.println(baby.getName() + " 高兴的说我吃了 " + baby.getApple().getName());
        baby.eat(grape);
        System.out.println(baby.getName() + " 高兴的说我吃了 " + baby.getGrape().getName());
        baby.eat(mango);
        System.out.println(baby.getName() + " 高兴的说我吃了 " + baby.getMango().getName());

    }
}

class Baby {

    private Apple apple;
    private Grape grape;
    private Mango mango;
    private String name;

    public Baby(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

    public Apple getApple() {
        return this.apple;
    }

    public Grape getGrape() {
        return this.grape;
    }

    public Mango getMango() {
        return this.mango;
    }

    //吃苹果
    public void eat(Apple apple) {
        this.apple = apple;
    }

    //吃葡萄
    public void eat(Grape grape) {
        this.grape = grape;
    }

    //吃芒果
    public void eat(Mango mango) {
        this.mango = mango;
    }

}

class Apple {

    private String name;

    public Apple(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }
}

class Grape {

    private String name;

    public Grape(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

}

class Mango {

    private String name;

    public Mango(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

}

转载于 : http://www.verejava.com/?id=16992843565554

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107335.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • dpkg用法详解_dpkg -l

    dpkg用法详解_dpkg -ldpkg是一个Debian的一个命令行工具,它可以用来安装、删除、构建和管理Debian的软件包。下面是它的一些命令解释:1)安装软件命令行:dpkg-i示例:dpkg-iavg71flm_r28-1_i386.deb2)安装一个目录下面所有的软件包命令行:dpkg-R示例:dpkg-R/usr/local/src3)释放软件包,但是不进行配置命令

  • 五万字总结,深度学习基础。「建议收藏」

    五万字总结,深度学习基础。「建议收藏」文章目录1基本概念1.1神经网络组成?1.2神经网络有哪些常用模型结构?1.3如何选择深度学习开发平台?1.4为什么深层神经网络难以训练?1.5深度学习和机器学习的异同?2网络操作与计算2.1前向传播与反向传播?2.2如何计算神经网络的输出?2.3如何计算卷积神经网络输出值?2.4如何计算Pooling层输出值输出值?2.5实例理解反向传播2.6神经网络更“深”有什么意义?3超参数3.1什么是超参数?3.2如何寻找超参数的最优值?3.3超参数搜索一般过程?4激活函数4

  • 【SCOI补全记】SCOI2016 bzoj4567-4572

    【SCOI补全记】SCOI2016 bzoj4567-4572T1:背单词(bzoj4567)题解代码T2:幸运数字(bzoj4568)题解代码T3:萌萌哒(bzoj4569)T4:妖怪(bzoj4570)T5:美味(bzoj4571)题解代码T6:围棋(bzoj4572)T1:背单词(bzoj4567)题解关键词:trie树贪心题意有些难懂,简单解释一下。对于在位置xxx的单词:…

  • 博弈论集锦

    博弈论集锦看完这么多效应及定理,能否总结成一条?1.马太效应   《新约马太福音》中有这样一个故事,一个国王远行前,交给三个仆人每人一锭银子,吩咐他们:“你们去做生意,等我回来时,再来见我。”国王回来时,第一个仆人说:“主人,你交给我们的一锭银子,我已赚了10锭。”于是国王奖励他10座城邑。第二个仆人报告说:“主人,你给我的一锭银子,我已赚了5锭。”于是国王例奖励了他5座城邑。第三个

  • C++ list容器的splice方法

    C++ list容器的splice方法list容器底层实现是一个带头结点的双向链表,由于链表的每个节点是单独开辟的,所以链表在移动数据,或者两个链表之间移动数据的时候,直接把节点摘下来,接入到新的位置就可以了,效率比较高。splice方法就是将list的元素进行拼接,原理就是改变结点指针的指向,效率比较高。先看看这splice方法的三种声明:(1)voidsplice(iteratorposition,list&lt…

  • Hibernate配置文件

    Hibernate配置文件

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号