gpt4 book ai didi

java - 返回父类型或子类型之间的区别

转载 作者:行者123 更新时间:2023-11-30 02:50:50 25 4
gpt4 key购买 nike

我想知道(如果这是一个重复的问题,请原谅,但我找不到专门关于我的问题的信息)将方法定义为返回父类型或子类型之间有什么区别。这是我的具体场景:

想象一下以下类和接口(interface):

public interface Color{
public int getRedVal();
public int getGreenVal();
public int getBlueVal();
}
public class RGBColor implements Color{
public int getRedVal() {...}
public int getGreenVal() {...}
public int getBlueVal() {...}
}
public class HSVColor implements Color{
public int getRedVal() {...}
public int getGreenVal() {...}
public int getBlueVal() {...}
}

现在,如果我要包含一个名为 getRGB() 的方法,那么会有什么区别:

public Color getRGB() {return new RGBColor();}

public RGBColor getRGB() {return new RGBColor();}

我似乎找不到与此相关的文档,而且我确信这是一个简单的答案。不管怎样,先感谢您的回答。

最佳答案

public Color getRGB() { return new RGBColor(); }

这里是向上转换(转换为父类(super class)型)。您正在更抽象的级别上工作,而不考虑实现(什么是好的)并且只能使用父级的方法。

public RGBColor getRGB() { return new RGBColor(); }

您和您的架构与实现 (RGBColor) 紧密绑定(bind),但可以使用此子类中定义的特定方法。

我更喜欢第一个选项而不是第二个。

关于java - 返回父类型或子类型之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38707339/

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