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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 51单片机和Arduino—闪烁灯实现

    51单片机和Arduino—闪烁灯实现

    2021年7月2日
    107
  • 遗传算法工具箱约束怎么输入_遗传算法中怎么添加约束条件

    遗传算法工具箱约束怎么输入_遗传算法中怎么添加约束条件前言网上有很多博客讲解遗传算法,但是大都只是“点到即止”,虽然给了一些代码实现,但也是“浅尝辄止”,没能很好地帮助大家进行扩展应用,抑或是进行深入的研究。这是我的开篇之作~之前没有写博客的习惯,一般是将笔记存本地,但久而久之发现回看不便,而且无法与大家交流和学习。现特此写下开篇之作,若有疏漏之处,敬请指正,谢谢!本文对遗传算法的原理进行梳理,相关代码是基于国内高校学生联合团队开源…

    2025年11月3日
    5
  • C语言大数运算-乘除法篇「建议收藏」

    C语言大数运算-乘除法篇「建议收藏」前言:这是第三篇博客,也是一次介绍二个计算的博客,可能难度会比前两篇博客大一点,所以建议对于初学者来说一定要看完我的前两篇博客再来看本篇博客,关于本次实验的环境,和思想在第一篇博客已经简单介绍过了,所以不再赘述,我会先介绍大数的乘法载介绍大数的除法,乘法的难点在于要使用一个嵌套循环,除法的难点在于一个字使用符串比较方法的技巧,本次还是会将算法都写成函数,然后在main()函数中调用,原因是在第四

    2022年10月7日
    4
  • Qt编写GIF录屏工具(开源)「建议收藏」

    Qt编写GIF录屏工具(开源)「建议收藏」在平时的写作过程中,经常需要将一些操作动作和效果图截图成gif格式,使得涵盖的信息更全面更生动,有时候可以将整个操作过程和运行效果录制成MP4,但是文件体积比较大,而且很多网站不便于上传,基本上都支持gif动图,一般一个5秒左右的gif,800*600分辨率,可以很好的控制在500KB内,这样就比较完美的支持各大网站上传动图。最开始使用的是ScreenGif.exe,用了很久,感觉还可以,后面一…

    2026年2月3日
    4
  • SecureCRT乱码问题解决方法[通俗易懂]

    网上有很多达人给出了SecureCRT登录linux,中文乱码问题的解决办法,我这里总结一下解决思路,原因还是SecureCRT客户端字体/字符集的原因,主要分以下两种情况解决:一后台刷日志时(tail–flogs/jboss_stdout.log)
    首先,确保Linux下的文件(比如日志)在Windows下打开没有乱码,显示正常就表明linux的字符集设置没有问题,不用去修改;
    其次,修改SecureCRT中的SessionOptions参数配置,如图中的红框:

    2022年4月8日
    40
  • 二项式分布和多项式分布的区别_二项式怎么化简

    二项式分布和多项式分布的区别_二项式怎么化简二项式定理(x+y)n=∑r=0n(nr)xryn−r=∑r=0nn!r!(n−r)!xryn−r(x+y)^n=\sum_{r=0}^n{n\chooser}x^ry^{n-r}=\sum_{r=0}^n\frac{n!}{r!(n-r)!}x^ry^{n-r}(x+y)n=r=0∑n​(rn​)xryn−r=r=0∑n​r!(n−r)!n!​xryn−reg:…

    2022年10月12日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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