考虑我们有两个通过继承相关的类的场景
class Parent {
}
class Child extends Parent{
}
如果Parent
声明了一个包含以下签名的方法:
public String method(Number n) / /parent 1
我知道在Child
我可以用以下方式声明方法
签名(应该覆盖)
public String method(Number n) // chilld 1_1
但如果Parent
包含以下签名:
public <T extends Number> String method(T t) //parent2
孩子可以通过跟随签名(2,分开)覆盖它:
public String method(Number n)//chilld 2_1
或
public<T extends Number> String method(T t)// chilld 2_2
是否有其他变体可覆盖parent1或parent2?
答案 0 :(得分:1)
如果您只是寻找变体,那么以下内容如何 -
public String method(Number n) throws RuntimeException
,或者
public <T extends Number> String method(T n) throws RuntimeException
另外,在String
的情况下不适用的另一个,因为它是最终的,是允许覆盖的方法在父级中返回返回类型的子类型。