继承练习_管状灯
问题描述
(1)编写1个Light
类,该类是对灯的描述,该类拥有:
1)2个成员变量
watts(私有,整型);//用于存放灯的瓦数;
indicator(私有,布尔类型);//用于存放灯的开或关的状态
2) 2个构造器方法
Light(int watts) //用于创建具有watts瓦的对象
Light(int watts,boolean indicator) //用于创建具有watts瓦,开关状态为indicator的对象
3) 3个成员方法
public void switchOn() //开灯,即将灯的状态置为开
public void switchOff() //关灯
public void printInfo() //输出灯的瓦数信息和开关状态
(2)编写1个TubeLight
类,该类是对管状灯的描述,它继承于Light
类。还拥有:
1) 2个成员变量
tubeLength(私有,整型) //用于存放灯管的长度
color(私有,String类型) //用于存放灯光的颜色
2) 构造器方法
TubeLight(int watts, int tubeLength,String color) //用于创建具有watts瓦,灯管长度为tugeLength,颜色为color的对象
3)成员方法
public void printInfo() //打印输出灯的相关信息,包括瓦数、开关信息、长度以及颜色
(3)请写一个测试程序,要求:
1)创建一个管状灯的实例对象,
2)打印输出该灯的相关信息。
输出结果如下:
该灯瓦数为:32;状态为开;长度为50;白色灯光。
参考代码
注意:复制粘贴题干内容时,需要把中文符号改成英文
以下为Light
类:
public class Light {
private int watts;
private boolean indicator;
public Light(int watts) {
this.watts = watts;
}
public Light(int watts, boolean indicator) {
this.watts = watts;
this.indicator = indicator;
}
public void switchOn() {
this.indicator = true;
}
public void switchOff() {
this.indicator = false;
}
public void printInfo() {
String tmp = indicator ? "开" : "关";
System.out.printf("该灯瓦数为: %d; 状态为%s; ", watts, tmp);
}
}
以下为TubeLight
类:
public class TubeLight extends Light {
private int tubeLength;
private String color;
public TubeLight(int watts, int tubeLength, String color) {
super(watts);
this.tubeLength = tubeLength;
this.color = color;
}
public void printInfo() {
super.printInfo();
System.out.printf("长度为%d; %s灯光", tubeLength, color);
}
}
以下为测试类:
public class Main {
public static void main(String[] args) {
TubeLight light = new TubeLight(32, 50, "白色");
light.switchOn();
light.printInfo();
// => 该灯瓦数为: 32; 状态为开; 长度为50; 白色灯光
}
}