转载于 : http://www.verejava.com/?id=16992846385655
创新互联公司从2013年开始,先为磴口等服务建站,磴口等地企业,进行企业商务咨询服务。为磴口企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
/** 题目: 孩子吃 水果(苹果,葡萄,芒果,菠萝) 思路: 1. 抽象出类 : 孩子(Baby), 水果(Fruit)(苹果(Apple),葡萄(Grape),芒果(Mango)) 2. 找出类的关系: 水果 -> 孩子 (苹果,葡萄,芒果) 是 水果的分类 3. 找出属性: 孩子(姓名,水果引用) 4. 找出方法: 孩子吃(eat)水果 子类->父类的转换 作用 :解耦 也就是降低类与类之间的耦合度 提供可扩展性 */public class Polymorphism3 { public static void main(String[] args) { //实例化一个Baby Baby baby = new Baby("李明"); //实例化一个苹果 和 一个葡萄 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()); } }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 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=16992846385655