假设我有MyInterface接口和2个实现MyInterface的类A,B.
我声明了两个对象:MyInterface a = new A()
和MyInterface b = new B()
.
当我尝试传递给函数 - 函数时,doSomething(A a){}
我收到一个错误.
这是我的代码:
public interface MyInterface {} public class A implements MyInterface{} public class B implements MyInterface{} public class Tester { public static void main(String[] args){ MyInterface a = new A(); MyInterface b = new B(); test(b); } public static void test(A a){ System.out.println("A"); } public static void test(B b){ System.out.println("B"); } }
我的问题是,我从一些组件接口,可以是各种类,我需要为每个类编写函数.
所以一种方法是获取接口并检查它是哪种类型.(A的例子)
我想知道其他人如何处理这个问题?
谢谢
你能不能只在每个类实现的接口上有一个方法?或者你没有控制界面?
这将提供多态性并避免定义任何外部方法的需要.我相信这是一个接口的意图,它允许客户端以非特定类型的方式处理实现它的所有类.
如果您无法添加到界面,那么最好使用适当的方法引入第二个界面.如果您无法编辑接口或类,则需要一个以接口作为参数的方法,然后检查具体类.然而,这应该是最后的手段,而是颠覆了接口的使用,并将方法与所有实现联系起来.