所有变体方法都覆盖

时间:2014-05-14 19:17:57

标签: java generics override

考虑我们有两个通过继承相关的类的场景

class Parent {    
}

class Child extends Parent{   
}
  1. 如果Parent声明了一个包含以下签名的方法:

    public String method(Number n) / /parent 1
    

    我知道在Child我可以用以下方式声明方法 签名(应该覆盖)

    public String method(Number n) // chilld 1_1
    
  2. 但如果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
    
  3. 是否有其他变体可覆盖parent1或parent2?

1 个答案:

答案 0 :(得分:1)

如果您只是寻找变体,那么以下内容如何 -

public String method(Number n) throws RuntimeException

,或者

public <T extends Number> String method(T n) throws RuntimeException

另外,在String的情况下不适用的另一个,因为它是最终的,是允许覆盖的方法在父级中返回返回类型的子类型。