程序代码:有一个接口Operation,如下所示:
interface Operation{
void open( );
void show( );
void close( );}
(1)编写窗帘类Curtain和灯类Light来实现接口Operation。
(2)编写一个ElectricCurtain类继承自Curtain,该类增加一个方法ref,该方法调用open方法。
(3)编写一个公共类Test,其中包含main方法,static void operate(Operation a)方法以及testCurtain()方法。
(4)在Test类的main方法中,调用operate方法接收窗帘类Curtain和灯类Light类的对象,对于窗帘类的对象,通过调用其实现的接口中的对应方法可以输出“窗帘已经拉开”,“外面风景真美”,“窗帘已经关闭”;对于灯类的对象,通过调用其实现的接口中的相关方法可以输出“灯已经打开”,“灯光真柔和”,“灯已经关闭”。
(5)Test类的testCurtain方法中,创建一个长度为2的数组ops,该数组元素有一个Curtain对象,一个ElectricCurtain对象,遍历该数组并调用每个元素的open方法。
package test10;
interface Operation
{
void open();
void show();
void close();
}
//窗帘类
class Curtain implements Operation
{
public void open()
{
System.out.println("窗帘已经拉开");
}
public void show()
{
System.out.println("外面风景真美");
}
public void close()
{
System.out.println("窗帘已经关闭");
}
}
//灯类
class Light implements Operation
{
public void open()
{
System.out.println("灯已经打开");
}
public void show()
{
System.out.println("灯光真柔和");
}
public void close()
{
System.out.println("灯已经关闭");
}
}
//电动窗帘类
class ElectricCurtain extends Curtain
{
public void ref()
{
open();
}
}
//测试类·
public class Main
{
public static void main(String[] args)
{
Curtain C = new Curtain();
Light L = new Light();
operate(C);
operate(L);
testCurtain();
}
public static void operate(Operation a)
{
a.open();
a.show();
a.close();
}
public static void testCurtain()
{
Operation []ops = {new Curtain(),new ElectricCurtain()};
for(Operation ope:ops)
{
ope.open();
}
}
}



