public interface Sourceable{
public voiid method();
}
public class Sourceable1 implements Sourceable{
@Overrid
public void method(){
System.out.println("this is first sub1");
}
}
public class Sourceable2 implements Sourceable{
@Override
public void method(){
System.out.println("this if second sub2");
}
public abstract class Brigde{
private Sourceable source;
public void setSource(Sourceable source){
this.source = source;
}
public Sourceable getSource(){
return source;
}
public void method(){
System.out.println("this is bridge method");
}
}
}
public class MyBridge extends Bridge{
public void method(){
this.getSource().method();
}
}
public class Test{
public static void main(String[] args){
Bridge bridge = new MyBridge();
Sourceable source1 = new Sourceable1();
bridge.setSource(source1);
bridge.method();
Sourceable source2 = new Sourceable2();
bridge.setSource(source2);
bridge.method();
}
}