在研究 Java 中重写和重写方法的想法时,我注意到此类方法的返回类型具有一定的灵活性。
这是一些理论:
“派生类中重写方法的返回类型可以相同,也可以是基类中重写方法的返回类型的子类。这种重写方法的返回类型称为协变返回类型。”
下面的示例假设 B 扩展了 A。
Method in A:
public Object some_method() {....}
Method in B:
public Integer some_method() {....}
因此,我们看到 B 中的 some_method() 覆盖了 A 中的 some_method(),因为 Integer 是 Object 的子类。
我想知道以下灵活性是否存在以及以下是否可以正确工作,因为自动装箱 and unboxing:
Method in A:
public Integer some_method() {....}
Method in B:
public int some_method() {....}
OR
Method in A:
public int some_method() {....}
Method in B:
public Integer some_method() {....}
您只能返回相同类型或父级返回类型的子类及其称为 Co-Variant 返回类型。
编译器允许您在基元和包装器之间自动装箱和拆箱,但这并不会使其中一个成为另一个的子类。基元不是类,不能以您现有的方式使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)