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


相关推荐

  • 【动态规划】01背包问题(通俗易懂,超基础讲解)[通俗易懂]

    【动态规划】01背包问题(通俗易懂,超基础讲解)[通俗易懂]问题描述有n个物品,它们有各自的体积和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?为方便讲解和理解,下面讲述的例子均先用具体的数字代入,即:eg:number=4,capacity=8i(物品编号) 1 2 3 4 w(体积) 2 3 4 5 v(价值) 3 4 5 6 总…

    2022年7月26日
  • 常用资源网站

    常用资源网站排名不分先后(1)https://www.codeproject.com/(2)http://www.codeguru.com/(3)https://www.cnblogs.com

    2021年12月18日
  • jquery 复习基础知识

    jquery 复习基础知识

    2021年8月9日
  • 开启QQ登录保护仍被盗号——QQ安全机制全面分析[通俗易懂]

    开启QQ登录保护仍被盗号——QQ安全机制全面分析[通俗易懂]1、前言周围总是有些同学QQ被盗号,攻击者盗取账号后会继续去欺骗列表里的好友,形成链式反应。危害比较大。腾讯QQ安全中心提供了登录保护机制,如图:  这是腾讯为QQ添加第二层保护,在开启登录保护后,盗号者偷走密码的情况下QQ仍然安全。即使你的账号密码不小心泄露了,盗号者仍旧无法登录你的QQ。  但是,有位同学在开启QQ登录保护的情况下依然被盗号者登录成功了。QQ登录保护的安全机制:当我们开启了“登录保护”,盗号者登录QQ输入正确的密码,即使更换IP骗过了安全检测系统,会发现仍然需要

    2022年6月22日
  • python zipfile.zipfile_confirm password

    python zipfile.zipfile_confirm password”””@author:Peng(非原创)记录:开发历程”””最近在写一个AndroidAPP,需下载服务器上的数据。有些PDF如果直接传输的话,将会增加通信的数据量,使下载时间变长。服务器在传输这些数据之前先对其进行压缩,客户端接收到数据之后进行解压,这样可以减小网通传输数据的通信量,缩短下载的时间,从而增加客户体验。用Python做类似的工作,只要使用zipfile模块提供的api就可以轻松的…

    2022年9月17日
  • vue-property-decorator的简单介绍,一看就会

    vue-property-decorator的简单介绍,一看就会identifier!如果编译器不能够去除null或undefined,你可以使用类型断言手动去除。语法是添加!后缀:identifier!从identifier的类型里去除了null和undefined:functionfixed(name:string|null):string{functionpostfix(epithet:string){…

    2022年10月23日

发表回复

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

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