gpt4 book ai didi

Java方法覆盖,子类采用参数类型的父类(super class)型

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:47:32 26 4
gpt4 key购买 nike

<分区>

在 java 中,我们可以缩小返回类型和抛出异常类型(甚至删除 throws 子句):

abstract class A
{
abstract CharSequence getName() throws NameNotAvailableException;
}

class B extends A
{
String getName()
{
return "foo";
}
}

但是,参数类型如何(如果 A 采用 T,那么 B 为什么不采用 ?super T),如:

abstract class A
{
abstract void setName(final String name);
}

class B extends A
{
void setName(final CharSequence name)
{

}
}

让我们考虑一下我认为对我来说完全合乎逻辑的这段代码:

void handleA(final A a)
{
a.setName("foo");
}

handleA(new B());

所以我要说的是 B 在使用 A 的代码上下文中仍然有效。

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