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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 正确使用AWS S3的方式之打造自己的https图床「建议收藏」

    正确使用AWS S3的方式之打造自己的https图床

    2022年2月10日
    41
  • Jenkins(1)安装

    Jenkins(1)安装 前言jenkins的环境搭建方法有很多,本篇使用docker快速搭建一个jenkins环境。环境准备:mac/Linuxdockerdocker拉去jenkins镜像先下载jenkins镜

    2022年7月29日
    6
  • word2vec原理剖析

    word2vec原理剖析本文根据word2vec中的数学原理详解整理而成。根据word2vec算法的原理,大概总结如下;1)由统计语言模型发展到n-gram模型,再由n-gram模型发展到NNLM模型,最后到word2vec模型;2)word2vec模型包括CBOW模型和Skip-gram模型;3)对于CBOW模型和Skip-gram模型,又分别有基于HierarchicalS…

    2022年5月13日
    40
  • IT界名人_it行业精英人物

    IT界名人_it行业精英人物互联网  张朝阳搜狐公司CEO  丁磊网易创始人/首席架构设计师  茅道临新浪CEO  陈天桥盛大CEO  马化腾腾讯CEO  王峻涛珠峰伟业(6688)总裁  鲍岳桥联众电脑总裁  宫玉国IT168网站CEO  黄明生263网络集团总裁兼COO  邵亦波易趣网CEO  王树彤原卓越网CEO  李彦宏百度

    2022年8月30日
    6
  • vue ant design callback问题

    vue ant design callback问题

    2020年11月9日
    537
  • 用pycharm打包py程序_怎么打包python文件

    用pycharm打包py程序_怎么打包python文件使用Pycharm和Anancoda打包应用程序平时我们在运行Python项目时都需要在Pycharm中运行,因为里面或者Anancoda中已经导入了相应的包,库,配好了对应的环境。一般运行时不是太方便,特别是在给用户使用时,这就显得很麻烦了。所以我们需要将其单独打包出来并且能够运行。本文我以Pycharm和Anancoda打包我里面的一个计算器应用程序。开始吧!1.进入自己创建的环境安装pyinstaller首先进入命令行,win+r后输入cmd进入命令行。之后输入命令进入到自己创建的环境中,我

    2022年8月29日
    3

发表回复

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

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