McT*_*fik 3 java syntax multiple-inheritance
我不知道为什么我在网上找不到这个答案.
我有实现多个方法的类,我想编写方法来期望它们.我不知道怎么做,或者甚至可能.
例如:
public void yellAtPet(<? extends Pet implements YellableAt> arg) {
arg.yellAt("Don't go there!");
arg.pet("Good Boy");
}
Run Code Online (Sandbox Code Playgroud)
Extends用于接口和父类.
如果你想强制实现多个扩展,你需要这样的东西:
<T extends ClassA & InterfaceB>
Run Code Online (Sandbox Code Playgroud)
要在方法上强制执行此操作,请对类进行泛化:
public class MyClass<T extends something & somethingelse>{
public void doSomething(T arg)
{
//call methods defined by either interface
}
}
Run Code Online (Sandbox Code Playgroud)
这应该可以作为通用方法正常工作,而不会使您的整个类通用:
public <T extends Pet & YellableAt> void yellAtPet(T arg) {
arg.yellAt("Don't go there!");
arg.pet("Good Boy");
}
Run Code Online (Sandbox Code Playgroud)