インターフェイスを実装することで、2 つの独立したクラスを通信させることは可能ですか?
質問する
9716 次
1 に答える
17
ここでインターフェイスを使用するのは少し極端だと思いますが、これはより大きな問題を単純化したものだと思います
public interface SomeInterface {
public void giveString(String string);
public String getString();
}
public class Class1 implements SomeInterface{
String string;
public Class1(String string) {
this.string = string;
}
//some code
@Override
public void giveString(String string) {
//do whatever with the string
this.string=string;
}
@Override
public String getString() {
return string;
}
}
public class Class2 implements SomeInterface{
String string;
public Class2(String string) {
this.string = string;
}
//some code
@Override
public void giveString(String string) {
//do whatever with the string
this.string=string;
}
@Override
public String getString() {
return string;
}
}
public class Test{
public static void main(String args[]){
//All of this code is inside a for loop
Class1 cl1=new Class1("TestString1");
Class2 cl2=new Class2("TestString2");
//note we can just communicate now, no interface
cl1.giveString(cl2.string);
//but we can also communicate using the interface
giveStringViaInterface(cl2,cl1);
}
//any class that extended SomeInterface could use this method
public static void giveStringViaInterface(SomeInterface from, SomeInterface to){
to.giveString(from.getString());
}
}
于 2013-05-08T14:43:13.450 に答える