gpt4 book ai didi

java - 为什么类 Cougar 需要在第 5 行实现方法的公共(public)版本,而该行没有方法(关于重载)

转载 作者:行者123 更新时间:2023-12-01 09:54:25 26 4
gpt4 key购买 nike

我理解“Hastail 接口(interface)中的 getTailLength() 方法被假定为公共(public)的,因为它是接口(interface)的一部分,因此,第 3 行该方法的实现 protected int getTailLength() {return 4;} 是无效覆盖”。

但我不知道为什么第5行不正确。解释说“类 Cougar 实现了 getTailLength() 的重载版本,但由于父类 Puma 中的声明无效,因此需要实现该方法的公共(public)版本”。

该行不包含getTailLength()方法,为什么它需要实现该方法的公共(public)版本?

抱歉问了这个愚蠢的问题,我正在尽力理解它。

interface HasTail { int getTailLength(); }
abstract class Puma implements HasTail {
protected int getTailLength() {return 4;}
}
public class Cougar extends Puma {
public static void main (String[] args) {
Puma puma = new Puma();
System.out.println(puma.getTailLength());
}
public int getTailLength(int Length); {return 2;}
}

最佳答案

因为你无法更改 public 中的方法签名至protected 并且仍然实现public接口(interface)来自HasTail 。在 Java 8+ 中,还可以提供 default方法体到接口(interface)。

关于java - 为什么类 Cougar 需要在第 5 行实现方法的公共(public)版本,而该行没有方法(关于重载),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37358167/

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