【发布时间】:2014-02-26 03:13:25
【问题描述】:
我一直在研究继承和接口,如果我有一个带有参数SomeClass c 的方法并且我使用c.interfaceMethod();,我会得到一个错误。如果我有一个带有参数SomeClass c 的方法,我如何访问这个方法c.interfaceMethod();?
public class SomeClass{
public void someMethod(SomeClass c){
c.interfaceMethod(); <-- how to access this method?
//and other methods
}
}
.
public class someOtherClass extends SomeClass implements someClassInterface{
@Override
public void interfaceMethod(){
System.out.println("something");
}
}
.
public interface someClassInterface{
public void interfaceMethod();
}
【问题讨论】:
-
你不能访问那个方法,它没有在
SomeClass中声明。 -
没有实现
someClassInterface并且您正在尝试访问未在正确类中定义的方法。请修复您的代码示例。 -
sorry sorry sorry :( 我在打字的时候忘记放工具了...
-
implements位于someOtherClass,而不是SomeClass。SomeClass仍然没有声明interfaceMethod。 -
由于
SomeClass没有实现interfaceMethod,所以编译器不能让你调用它。您可以尝试将SomeClass转换为someClassInterface,然后调用此方法,但这仅在c将是实现someClassInterface的类的实例时才有效,例如someOtherClass。
标签: java inheritance interface composition