//测试类
public class Test {
public static void main(String[] args) {
//测试红灯
//有名对象
RedBule rb=new RedBule();
rb.shine();
System.out.println("---------");
//测试台灯类
//有参构造方法赋值
Lamp lamp=new Lamp(rb);//形参如果是一个引用类型,需要传递该引用类型的具体对象
lamp.on();
System.out.println("-------------");
Lamp lamp2=new Lamp(new GreenBuble());//匿名对象
lamp2.on();
}
}
package com.lin.final_test;
//台灯类
public class Lamp {
//类属性
//声明一个Buble类型变量
public Buble buble;
public Lamp() {}
public Lamp(Buble buble) {//构造方法也是方法,不过是特殊的方法
//形参如果是一个引用类型,需要传递该引用类型的具体对象
this.buble=buble;
}
//开灯方法
public void on() {
buble.shine();//发亮
}
}
package com.lin.final_test;
public class Buble {
//发亮的方法
public void shine() {
System.out.println("灯泡可以发光");
}
}
package com.lin.final_test;
//红花灯泡
public class RedBule extends Buble {
@Override
public void shine() {
System.out.println("可以发红红光");
}
}
package com.lin.final_test;
//绿灯跑
public class GreenBuble extends Buble {
@Override
public void shine() {
System.out.println("可以发绿光");
}
}