Java 类和类的继承

285 阅读1分钟

1. 方法返回类型的可协变性

首先,方法签名是指 方法名参数列表,并不包括返回类型,而我们覆盖父类方法时,需要保证签名一致。

例如: class Manager extends Employee,而 Employee中定义如下方法:

public Employee getBuddy() {

}

问题来了,如果Manager类想覆盖getBuddy()方法:,需要返回值完全一致吗?

答案是并不需要,Manager类可以这么覆盖getBuddy()方法:

@Override
public Manager getBuddy() {

}

只需要保证子类方法的返回类型父类方法返回类型的子类型就可以。