文章目录
- 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());}
}