文章目錄
- UML類圖
- 目錄結構
- Humburger.java
- ChickenBurger.java
- Condiment.java
- Chuilli.java
- Lettuce.java
- Test.java
- 深度理解test怎么寫
UML類圖
目錄結構
我們從指向最多的開始寫
Humburger.java
package zsms;public abstract class Humburger {protected String name;public String getName(){//因為沒abstract,所以猜是具體方法return name;}public abstract double getPrice();//因為是抽象方法 ,所以什么都不用寫
}
ChickenBurger.java
package zsms;public class ChickenBurger extends Humburger {public ChickenBurger(){//繼承了我們就初始化name = "雞腿堡";}//繼承了我們還要重寫方法@Overridepublic double getPrice(){ //給一個價格return 10; }
}
Condiment.java
package zsms;
/** 配料 佐料* */
public abstract class Condiment extends Humburger {protected Humburger humburger;public abstract String getName();//抽象類啥也不寫
}
Chuilli.java
package zsms;
/** chilli 辣椒,辣醬* */
public class Chilli extends Condiment {Humburger humburger;//再來一遍!!構造方法是初始化//有this,你的這個類里就得有 這個東西 Humburger humburgerpublic Chilli(Humburger humburger){this.humburger = humburger;}@Overridepublic String getName(){//認真理解, 你返回的是什么的名字?//是不是加了辣椒的漢堡?return humburger.getName()+"加辣椒";}@Overridepublic double getPrice(){//返回的是誰的價格?//是不是帶有辣椒的漢堡?//辣椒是免費的,所以直接返回 漢堡的價格return humburger.getPrice();}
}
Lettuce.java
package zsms;
/** 生菜*/
public class Lettuce extends Condiment {Humburger humburger;//構造方法 初始化 就是this public Lettuce(Humburger humburger){this.humburger = humburger;}@Overridepublic String getName(){/** get誰的名字?* 加了生菜的漢堡的名字*/return humburger.getName()+"加生菜";}@Override public double getPrice(){/** get誰的price?* 加了生菜的漢堡的價格* 生菜一塊錢*/return humburger.getPrice()+1;}}
Test.java
深度理解test怎么寫
package zsms;public class Test {public static void main(String[] args) {//weisha //h什么也沒有加Humburger h = new ChickenBurger();System.out.println(h.getName() + h.getPrice());//h1加生菜Humburger h1 = new Lettuce(h);System.out.println(h1.getName() + h1.getPrice());//h2加雙倍生菜Humburger h2 = new Lettuce(h1);System.out.println(h2.getName() + h2.getPrice());//h3加辣椒Humburger h3 = new Chilli(h);System.out.println(h3.getName() + h3.getPrice());//h4都加Humburger h4 = new Chilli(h1);System.out.println(h4.getName() + h4.getPrice());}
}