题目描述
设计一个台灯类(Lamp)其中台灯有灯泡类(Buble)的属性buble表示它所用的灯泡,boolean类型的属性isTurnOn,表示灯的开关状态;一个实例方法void turn()表示按一下台灯开关,从而引起台灯开关状态的变化,当台灯被关上时,输出“台灯被关上,灯黑了”当台灯被打开时,由其中的灯泡调用work()方法。一个带Buble类型参数和boolean参数的构造方法。”、“XX瓦的灯泡发出绿光~”,也提供两个构造方法。
设计一个抽象的灯泡类(Buble),灯泡类有int类型的power属性表示灯泡瓦数,还有一个抽象的实例方法work()方法表示灯泡工作时会发光;灯泡类分别提供一个无参构造方法和一个参数的构造方法,没有参数时表示灯泡的瓦数为15瓦。再设计红灯泡类(RedBuble)和绿灯泡类(GreenBuble),他们都是继承灯泡类(Buble)的具体的子类,都将重写work(),分别显示“XX瓦的灯泡发出红光
在主类中创建两个台灯对象,其运行结果如样例输出所示。
public class Main {
public static void main(String[] args) {
Lamp lamp1 = new Lamp(new RedBuble(25), false);
Lamp lamp2 = new Lamp(new GreenBuble(), true);
System.out.println("lamp1按两次开关:");
lamp1.turn();
lamp1.turn();
System.out.println();
System.out.println("lamp2按两次开关:");
lamp2.turn();
lamp2.turn();
}
}
输出样例
lamp1按两次开关:
25瓦的灯泡发出红光~
本台灯被关上,灯黑了~
lamp2按两次开关:
本台灯被关上,灯黑了~
15瓦的灯泡发出绿光~
用户代码