Java 面向对象 之 多态实例 孩子吃水果

简介:

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

目录
相关文章
|
1月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
25 1
|
2月前
|
JavaScript 前端开发 Java
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。如果你从我的文章中受益,欢迎关注我,我将持续更新更多优质内容。你的支持是我前进的动力!🎉🎉🎉
26 0
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
|
2月前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
45 2
|
3月前
|
Java
通过Java代码解释成员变量(实例变量)和局部变量的区别
本文通过一个Java示例,详细解释了成员变量(实例变量)和局部变量的区别。成员变量属于类的一部分,每个对象有独立的副本;局部变量则在方法或代码块内部声明,作用范围仅限于此。示例代码展示了如何在类中声明和使用这两种变量。
|
3月前
|
存储 Java 测试技术
Java零基础-多态详解
【10月更文挑战第10天】Java零基础教学篇,手把手实践教学!
41 4
|
3月前
|
Java 编译器 程序员
Java多态背后的秘密:动态绑定如何工作?
本文介绍了Java中多态的实现原理,通过动态绑定和虚拟方法表,使得父类引用可以调用子类的方法,增强了代码的灵活性和可维护性。文中通过具体示例详细解析了多态的工作机制。
79 4
|
3月前
|
Java
java继承和多态详解
java继承和多态详解
55 5
|
3月前
|
存储 Java 测试技术
Java零基础-多态详解
【10月更文挑战第1天】Java零基础教学篇,手把手实践教学!
31 1
|
3月前
|
安全 Java 编译器
【一步一步了解Java系列】:重磅多态
【一步一步了解Java系列】:重磅多态
25 3
|
3月前
|
Java
Java关键字 —— super 与 this 详细解释!一看就懂 有代码实例运行!
本文介绍了Java中this和super关键字的用法,包括在构造方法中使用this来区分参数和成员变量、使用super调用父类构造方法和方法,以及它们在同一个方法中同时使用的场景。
164 0
Java关键字 —— super 与 this 详细解释!一看就懂 有代码实例运行!