先定义一个父类接口,然后定义两个子类作为两种不同的模式,再定义一个抽象类,把接口作为抽象类的属性,再main方法中把接口子类的类名传给set方法,然后再调用save方法就可以实现了
public class inter {
public static void main(String []args) {
book k = new run();
k.setISave(new func1());//括号里面的func1是传给isave的
k.add("ting");
}
}
//定义一个父类接口
interface ISave{
//在父类接口中定义一个方法
public void save(String data);
}
class foo implements ISave{//定义两个类用来执行两种不同的功能
String data;
public void save(String data) {
System.out.println("保存到本地");
System.out.println(data);
}
}
class func1 implements ISave{
public void save(String data) {
System.out.println("保存到云端");
}
}
abstract class book{
private ISave isave;//把接口作为属性
public void setISave(ISave isave) {//用set方法传参,isave的值是一个类名
this.isave=isave;
}
public void add(String data) {
System.out.println("检查数据合法性。。。");
isave.save(data);//为save方法传参。isave的值也是类名,意思是调用某一个类的save方法
System.out.println("保存完毕");
}
}
class run extends book{
}



