gpt4 book ai didi

java - 使用泛型作为参数重载接口(interface)中的方法

转载 作者:行者123 更新时间:2023-12-01 13:07:08 24 4
gpt4 key购买 nike

我有一个 Java 接口(interface) A 定义了一个方法,该方法采用另一个接口(interface) B 作为参数。我想知道是否可以在实现类中重载该方法,以给出实现接口(interface) 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){}
}

预先感谢您的帮助。

最佳答案

如果您尝试一下,您会发现编译器将 SampleClassASampleClassB 视为缺少实现 SampleInterfaceA 所需的内容。

您需要实现接口(interface)中定义的实际方法。

获得大约您想要的结果的一种方法是使用泛型:

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){}
}

关于java - 使用泛型作为参数重载接口(interface)中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23184109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com