gpt4 book ai didi

java - 用子类型覆盖方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:13:56 25 4
gpt4 key购买 nike

我了解到,如果方法具有相同的签名,我可以覆盖它。

然而,派生类中重写方法的返回类型可以是父类(super class)方法返回类型的子类型。如果上面提供的陈述是正确的,谁能告诉我这段代码有什么问题?

class Base{
public int getValue(){ return 222; } //1
}

class Sub extends Base{
public byte getValue(){ return 10; } //2
public static void main(String[] args){
Base b = new Sub();
System.out.println(b.getValue());
}
}

最佳答案

byte 是原始类型,不是 int 的子类型。然而,

static class Super {
public Date getValue() {
return new Date();
} // 1
}

static class Sub extends Super {
public Timestamp getValue() {
return new Timestamp(System.currentTimeMillis());
} // 2

}

public static void main(String[] args) {
Super b = new Sub();
System.out.println(b.getValue());
}

将起作用,因为 java.sql.Timestampjava.util.Date 的子类

关于java - 用子类型覆盖方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23746075/

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