gpt4 book ai didi

java - 通过接口(interface)引用对象。总是?

转载 作者:行者123 更新时间:2023-11-29 05:39:22 27 4
gpt4 key购买 nike

从 effective java 中截取的代码,这里我们使用 List 来遵守通过接口(interface)引用对象的良好做法。

// Good - uses interface as type
List<Subscriber> subscribers = new Vector<Subscriber>();

假设我们有一个 car 接口(interface),2wheel4wheel 是具体的子类。是否甚至建议(似乎是肯定的)构造一个“汽车”类型的列表?

List<Car> car = new Vector<2wheel>();

代替

List<2wheel> car = new Vector<2wheel>();

最佳答案

我同意这本书。尽可能始终使用接口(interface)类型。我在 List 中使用 2wheel4wheel 实现的唯一方法是,如果它们包含需要调用但未打开的特定方法界面。

例如:

public interface Car{
public void drive();
}

public class 2wheel implements Car{
public void drive(){
//implementation
}
}


public class 4wheel implements Car{
public void drive(){
//implementation
}

public void initiate4WheelDrive(){
//implementation
}
}

如果您有一个List 并且使用该列表的代码需要调用initiate4WheelDrive 方法,那么您必须使用具体实现。这通常由调用代码决定,但如果可能的话坚持接口(interface),以便您可以轻松地交换实现。

另一个注意事项,名称 2wheel 在 Java 中是无效名称,因为类和接口(interface)名称不能以数字开头。

关于java - 通过接口(interface)引用对象。总是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18220792/

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