gpt4 book ai didi

java - 有效的Java第19条-仅使用接口(interface)来定义类型

转载 作者:行者123 更新时间:2023-12-01 16:33:39 24 4
gpt4 key购买 nike

我有一个实现两个接口(interface)的抽象类。我的想法是否正确,因为我使用两个接口(interface),所以我不能使用任何一个接口(interface)来实现动态绑定(bind)?原因是,如果我要使用其中一个接口(interface),我显然无法从另一个接口(interface)调用方法,因为类型系统只允许子类型调用我用来声明多态变量的接口(interface)定义的方法?

因此,我真正的问题是,我只真正使用接口(interface)来确保我的抽象类(或子类)确实提供方法的实现吗?这似乎与 Item 19 的规定相矛盾——你应该只使用类型的接口(interface)(我认为这意味着多态性)。

示例:

public interface A{
public void meth1();
}

public interface B{
public void meth2();
}

public abstract class C implements A,B{

}

public void DynamicBinding(A aobject){
//Can only call aobject.meth1();
}

最佳答案

您可以使用泛型让您的方法采用 A 类型和 B 类型的参数:

public <T extends A & B> void method(T param) {
param.meth1(); // fine
param.meth2(); // also fine
}

相关问题here

关于java - 有效的Java第19条-仅使用接口(interface)来定义类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11705137/

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