我有一个Java接口A定义了一个方法,它将另一个接口B作为参数。 我想知道是否可以在实现类中重载该方法,以作为参数提供实现接口B的对象。 这是我的意思的示例代码:
public interface SampleInterfaceA{
public void sampleMethod(SampleInterfaceB b);
}
public class ClassB implements SampleInterfaceB{}
public class ClassC implements SampleInterfaceB{}
public class SampleClassA implements SampleInterfaceA{
@Override
public void sampleMethod(ClassB b){}
}
public class SampleClassB implements SampleInterfaceA{
@Override
public void sampleMethod(ClassC c){}
}
提前感谢您的帮助。
答案 0 :(得分:1)
如果你尝试一下,你会发现编译器认为SampleClassA
和SampleClassB
缺少实施SampleInterfaceA
所需的内容。
您需要实现界面中定义的实际方法。
获得大概你想要的东西的方法是使用泛型:
public interface SampleInterfaceA <T extends SampleInterfaceB>{
public void sampleMethod(T b);
}
public class SampleClassA implements SampleInterfaceA<ClassB>{
public void sampleMethod(ClassB b){}
}
public class SampleClassB implements SampleInterfaceA<ClassC>{
public void sampleMethod(ClassC c){}
}