Java 所有变量方法重写
考虑这样一个场景:我们有两个通过继承关联的类Java 所有变量方法重写,java,generics,overriding,Java,Generics,Overriding,考虑这样一个场景:我们有两个通过继承关联的类 class Parent { } class Child extends Parent{ } 如果Parent声明了具有以下签名的方法: public String method(Number n) / /parent 1 public <T extends Number> String method(T t) //parent2 我知道在Child中,我可以用以下命令声明方法 签名(应被覆盖) 但如果父项包含以下
class Parent {
}
class Child extends Parent{
}
Parent
声明了具有以下签名的方法:
public String method(Number n) / /parent 1
public <T extends Number> String method(T t) //parent2
我知道在Child
中,我可以用以下命令声明方法
签名(应被覆盖)
public String method(Number n) / /parent 1
public <T extends Number> String method(T t) //parent2
或
publicstringmethod(tt)//child 2_2
是否有其他变量可用于覆盖parent1或parent2?如果您只查找一个变量,那么如何执行以下操作-
public String method(Number n) throws RuntimeException
或者
公共字符串方法(tn)引发RuntimeException
另外,另一个不适用于
String
的情况,因为它是最终的,即允许重写方法在父级中返回返回类型为return的子类型。yes!在Child中,我可以标记@override我假设一个Child可以采用不太具体的输入类型(Object),从而覆盖/屏蔽父调用。例如,公共字符串方法(对象t)——以及该方法的泛型类型变体。公共字符串方法(编号n)抛出RuntimeException、SomeOtherException等。在检查异常的情况下,它必须是相同的异常或父类中异常的某个子类,否则是不允许的。例如,如果父类中的方法抛出所有已检查异常的超类异常
,则子类版本可以决定仅抛出检查异常FileNotFoundException
。
public String method(Number n) throws RuntimeException
public <T extends Number> String method(T n) throws RuntimeException