您现在的位置是:首页 > 文章详情

Java 面向对象 之 孩子 学生 吃 水果

日期:2018-08-26点击:345

http://www.verejava.com/?id=16992848300456

/** 题目: (孩子,学生) 吃 水果(苹果,葡萄,芒果,菠萝) 思路: 1. 抽象出类 : {孩子(Baby),学生(Student)}, 水果(Fruit){苹果(Apple),葡萄(Grape),芒果(Mango)} 2. 找出类的关系: 水果 -> (孩子,学生) (苹果,葡萄,芒果) 是 水果的分类 3. 找出属性: 孩子,学生(姓名,水果引用) 4. 找出方法: 孩子,学生都吃(eat)水果 子类->父类的转换 作用 :解耦 也就是降低类与类之间的耦合度 提供可扩展性 */ public class Polymorphism4 { public static void main(String[] args) { //实例化一个Baby Baby baby = new Baby("李明"); //实例化一个学生 Student stu = new Student("张涛"); //实例化一个苹果 和 一个葡萄 Apple apple = new Apple("红富士"); Grape grape = new Grape("黑葡萄"); Mango mango = new Mango("大芒果"); PineApple pineApple = new PineApple("菠萝"); //李明吃水果 baby.eat(apple); System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName()); baby.eat(grape); System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName()); baby.eat(mango); System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName()); baby.eat(pineApple); System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName()); //张涛吃水果 stu.eat(apple); System.out.println(stu.getName() + " 吃了 " + stu.getFruit().getName()); stu.eat(grape); System.out.println(stu.getName() + " 吃了 " + stu.getFruit().getName()); stu.eat(mango); System.out.println(stu.getName() + " 吃了 " + stu.getFruit().getName()); stu.eat(pineApple); System.out.println(stu.getName() + " 吃了 " + stu.getFruit().getName()); } } class Baby { private Fruit fruit; private String name; public Baby(String name) { this.name = name; } public String getName() { return this.name; } public Fruit getFruit() { return this.fruit; } //吃水果 public void eat(Fruit fruit) { this.fruit = fruit; } } class Student { private Fruit fruit; private String name; public Student(String name) { this.name = name; } public String getName() { return this.name; } public Fruit getFruit() { return this.fruit; } //吃水果 public void eat(Fruit fruit) { this.fruit = fruit; } } class Fruit { private String name; public Fruit(String name) { this.name = name; } public String getName() { return this.name; } } class PineApple extends Fruit { public PineApple(String name) { super(name); } } class Apple extends Fruit { public Apple(String name) { super(name); } } class Grape extends Fruit { public Grape(String name) { super(name); } } class Mango extends Fruit { public Mango(String name) { super(name); } } 

http://www.verejava.com/?id=16992848300456

原文链接:https://yq.aliyun.com/articles/629169
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章