转载于 :http://www.verejava.com/?id=16992846385655

/**题目:孩子吃水果(苹果,葡萄,芒果,菠萝)思路:1.抽象出类:孩子(Baby),水果(Fruit)(苹果(Apple),葡萄(Grape),芒果(Mango))2.找出类的关系:水果->孩子(苹果,葡萄,芒果)是水果的分类3.找出属性:孩子(姓名,水果引用)4.找出方法:孩子吃(eat)水果子类->父类的转换作用:解耦也就是降低类与类之间的耦合度提供可扩展性*/publicclassPolymorphism3{publicstaticvoidmain(String[]args){//实例化一个BabyBabybaby=newBaby("李明");//实例化一个苹果和一个葡萄Appleapple=newApple("红富士");Grapegrape=newGrape("黑葡萄");Mangomango=newMango("大芒果");PineApplepineApple=newPineApple("菠萝");//李明吃苹果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());}}classBaby{privateFruitfruit;privateStringname;publicBaby(Stringname){this.name=name;}publicStringgetName(){returnthis.name;}publicFruitgetFruit(){returnthis.fruit;}//吃水果publicvoideat(Fruitfruit){this.fruit=fruit;}}classFruit{privateStringname;publicFruit(Stringname){this.name=name;}publicStringgetName(){returnthis.name;}}classPineAppleextendsFruit{publicPineApple(Stringname){super(name);}}classAppleextendsFruit{publicApple(Stringname){super(name);}}classGrapeextendsFruit{publicGrape(Stringname){super(name);}}classMangoextendsFruit{publicMango(Stringname){super(name);}}

转载于 :http://www.verejava.com/?id=16992846385655