1. 简介描述
最近发现很多大学测试都喜欢测试一些java小案例,今天给大家分享的是关于:继承extends
和实现implements
的问题,这个案例是以台灯类Lamp
为案例说明的。
2. 题目描述
下面就是一些题目描述了:
设计一个台灯类Lamp其中台灯,有开灯(on)这个方法,设计一个灯泡类 其中有红灯泡(RedBuble) 和绿灯泡(GreenBuble) 他们都有一个发亮的方法, 请设计出一段代码可以使台灯开启
3. 代码实现‘
对于下边的一些类和方法啊,大家可以直接copy就欧克。亲测有效!
Lamp类
public class Lamp {
private Bulb bulb;//灯泡
public Bulb getBulb() {
return bulb;
}
public void setBulb(Bulb bulb) {
this.bulb = bulb;
}
/**
* 通过父类Bulb调用子类重写父类的方法
* @param bulb
*/
public void on(Bulb bulb){
if(bulb instanceof RedBulb){
String r=bulb.bright();
System.out.println("打开台灯"+r);
}else if(bulb instanceof GreenBulb){
String g=bulb.bright();
System.out.println("打开台灯"+g);
}
}
}
Bulb接口
public interface Bulb {
public abstract String bright();
}
RedBulb 类
这里的RedBulb 是实现了上边的Bulb接口
public class RedBulb implements Bulb{
/**
* @return
*/
@Override
public String bright() {
return "红灯泡发亮";
}
}
GreenBulb 类
这里的GreenBulb 是实现了上边的Bulb接口
public class GreenBulb implements Bulb {
@Override
public String bright() {
return "绿灯泡发亮";
}
}
BulbTest 类
这里是测试类,对于题目要求的一个实现,上边都是一些要实现下边测试用的一些原材料类和接口
public class BulbTest {
public static void main(String[] args){
Lamp lamp=new Lamp();
//父类引用指向子类对象
Bulb red=new RedBulb();
Bulb green=new GreenBulb();
lamp.on(green);
lamp.on(red);
}
}
4. 最后的总结
其实,这个java的小案例,主要是在考察:继承extends
和实现implements
和多态
。
这里的继承
和实现
主要表现在对于接口类和实现关系上,而多态
主要体现的测试类中使用Bulb接口。
下面让我们看一下运行的结果: