接口回调,上转型,体现程序设计的“开-闭”原则
接口Advertisement.java
public interface Advertisement {
void showAdvertisement();//接口只声明方法,不给出实现,显示广告语
String getCorpName();//get公司名称
}
与接口配套的调用接口方法的类,参数为接口的实现类AdvertisementBoard.java
public class AdvertisementBoard {
void show(Advertisement ad) {//接收接口类型的参数,接口回调
System.out.println(ad.getCorpName()+"的广告是:");//接口.方法,“开-闭”原则
ad.showAdvertisement();
}
}
两个实现接口的类BlackLandCorp.java WhiteCloudCorp.java
public class BlackLandCorp implements Advertisement {
public void showAdvertisement() {//Override
System.out.println("BlackLand Corp");//打印广告语
}
public String getCorpName() {//Override
return "Black Land Corp";//返回公司名称
}
}
public class WhiteCloudCorp implements Advertisement {
public void showAdvertisement() {//Override
System.out.println("WhiteCloud Corp");
}
public String getCorpName() {//Override
return "White Cloud Corp";
}
包含main方法的测试类Ex6_6.java
public class Ex6_6 {
public static void main(String[] args) {
AdvertisementBoard ad=new AdvertisementBoard();
ad.show(new WhiteCloudCorp());//传实现接口的类的对象WhiteCloudCorp
ad.show(new BlackLandCorp());//传实现接口的类的对象BlackLandCorp
//如果有新的“Corp”,程序支持扩展,仅需在新建一个实现Advertisement接口的类即可
}
}