http://www.kisse-logs.com/2017/05/31/java-callback/
↑の記事にあるソースコード:
class ClassA implements ClassB.ICallBack{
// クラスBのインスタンスを生成し、コールバックメソッドを持つクラス
public static void main(String[] args) {
new ClassA();
}
private ClassB classB; public ClassA() { classB = new ClassB(); classB.setReference(this); classB.someMethod(); } public void callbackMethod() { // インタフェースClassB.ICallBackの実装 System.out.println("クラスBからコールバックされた!"); } public void cannotCallFromClassB() { // インタフェースに記述されてないので、ClassBから呼ぶことができない。 }
}
class ClassB {
interface ICallBack {
public void callbackMethod();
}
private ICallBack reference; public void setReference(ICallBack arg) { reference = arg; } public void someMethod() { reference.callbackMethod(); // reference.cannnotCallFromClassB(); // エラーが出るよ }
}
ここで、質問なのですが、
なぜ ClassB から cannotCallFromClassB() メソッドを呼べないのですか?
コメントアウトされている “インタフェースに記述されてないので、ClassBから呼ぶことができない。” という理由も納得できません。
上記について、教えて頂きたいです。
宜しくお願いしします。
回答1件
あなたの回答
tips
プレビュー