2012-04-09 65 views
0

这里是我有问题的代码:为什么我的接口类型对象不会执行未在接口中声明的方法?

接口:

public interface anInterface { 

    void printSomething(); 

} 

类实现接口:

public class aClass implements anInterface { 

    public aClass() { 

    } 

    public void printSomethingElse() { 
     System.out.println("Something else"); 
    } 

    @Override 
    public void printSomething() { 
     System.out.println("Something"); 
    } 
} 

和主要功能:

public static void main(String[] args) { 
    anInterface object = new aClass(); 
    object.printSomething(); // works fine 
    object.printSomethingElse();  // error 
} 

错误:找不到符号。 符号:method printSomethingElse();

有人可以告诉我为什么这不起作用吗?

是否有可能在Java中,当你有一个实现了某个接口的类时,向该类添加方法,即使这些方法没有在接口中声明?还是必须声明我将在界面中使用的所有方法?

我也试过它在C#中,也不工作。

我在做什么错?

谢谢!

回答

3

您必须在界面中声明您想要使用的所有方法。该接口对printSomethingElse一无所知,这就是为什么你会得到上述错误。

接口的目的是让您可以在多个类似实现的类中使用通用函数列表。例如,List是一个接口,其中包含由不同类别实现的各种功能的“列表”,例如LinkedList,其使用双链表来提供使用动态扩展阵列的ListArrayList的功能。

相关问题