图一,
图二,
图三,类的结构
public class Boy {
public static void main(String[] args) {
new Boy().zui(new MM("春哥"));
}
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void zui(MM mm){
Gift g=new WormGift(new Flower());//温暖的花
Gift g1=new ColdGift(new Ring());//冷酷的戒指
gift(g, mm);
gift(g1, mm);
}
public void gift(Gift g,MM mm){
System.out.println(mm.getName()+"得到的礼物:"+ g.getGiftname());
}
}
public class MM {
private String name;
public MM(String name){
this.name=name;
}
public MM(){}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Gift {
protected GiftImpl impl;
private float price;
private String giftname;
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public String getGiftname() {
return giftname;
}
public void setGiftname(String giftname) {
this.giftname = giftname;
}
}
public class GiftImpl extends Gift{
}
//冷酷的礼物
public class ColdGift extends Gift{
public ColdGift(){}
public ColdGift(GiftImpl impl){
this.impl=impl;
}
}
//狂野的礼物
public class WildGift extends Gift{
public WildGift(){}
public WildGift(GiftImpl impl){
this.impl=impl;
}
}
//温暖的礼物
public class WormGift extends Gift{
public WormGift(){}
public WormGift(GiftImpl impl){
this.impl=impl;
}
}
//花
public class Flower extends GiftImpl{
private String color;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
//戒指
public class Ring extends GiftImpl{
private String type;//黄白金
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}