【发布时间】:2014-01-31 23:50:52
【问题描述】:
我有一个界面:
public interface ExampleInterface {
public void exampleMethod();
public void anotherExampleMethod();
}
还有一个示例类:
public class ExampleClass implements ExampleInterface{
public ExampleClass() {
........
}
public void exampleMethod() {
..............
}
public void anotherExampleMethod() {
..............
}
public void myOwnMethod() {
........
}
}
我使用这样的接口实例化类:
ExampleInterface exampleClass = new ExampleClass();
这样做没问题:
exampleClass.exampleMethod();
但这不是:
exampleClass.myOwnMethod();
但是,这是可行的:
ExampleClass exampleClass = new ExampleClass();
exampleClass.myOwnMethod();
为什么当我使用接口实例化并尝试调用不属于该接口的方法时它不起作用?无论如何调用myOWnMethod(),同时仍然使用接口进行实例化?
【问题讨论】:
-
阅读声明/静态类型与运行时/动态类型。以及如何解决方法调用。
-
答案就在问题中:该方法不是接口的一部分,所以不能调用它,因为编译器无法知道该方法在对象上是否可用。
标签: java methods interface instantiation