`

[#0x000A] 关于覆写方法的return type

    博客分类:
  • Java
EXT 
阅读更多

  在[#0x0005]里面提到过,如果在base class中有一个可继承的方法,在ext class中添加一个同签名的方法则是覆写行为。其实,覆写对return type还是有要求的。

  一般说来,覆写方法要求除了签名相同外,return type也要相同。

  另外,Java SE 5新推出了“协变返回类型(covariant return type)”,即覆写方法的return type可以是被覆写方法return type的ext class,如:

class BaseReturnType
{
}

class ExtReturnType extends BaseReturnType
{
}

class Base
{
	BaseReturnType work()
	{
		return new BaseReturnType();
	}
}

class Ext extends Base
{
	ExtReturnType work()
	{
		return new ExtReturnType();
	}
}

 

分享到:
评论

相关推荐

    行业分类-设备装置-一种数据覆写方法.zip

    本文将详细解析标题“行业分类-设备装置-一种数据覆写方法”所涉及的知识点,以及从描述中我们可以推测的关于数据覆写的方法。 首先,我们来理解“行业分类”。在信息技术领域,行业分类是指根据业务特性、应用领域...

    重载与覆写/重写的区别

    可是对于覆写而言,绝对不能修改返回值类型,但是在子类中所覆写的方法应该可以继续进行重载。 重载(Overloading)  (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时...

    c#经典题目

    不能将非静态方法覆写为静态方法,也不能覆写私有方法。 #### 12. 阻止类被继承 通过使用`sealed`关键字,可以禁止一个类被其他类继承,从而确保类的最终形态。 #### 13. 控制方法覆写 若想允许类被继承,但阻止...

    Java-面向对象(高级篇)--继承的进一步研究.docx

    这表明子类 `Student` 覆写了父类 `Person` 中的 `print` 方法,并且子类对象调用的就是覆写后的方法。 需要注意的是,如果尝试将子类方法的访问级别设置得比父类方法更严格,将会导致编译错误。例如,如果试图将 `...

    自定义ServiceObject开发

    自定义ServiceObject开发涉及从创建项目、引入依赖库到定义类、覆写方法等多个步骤。通过遵循上述流程,开发者可以构建出符合业务需求的定制化服务,进一步增强K2 BlackPearl平台的灵活性和功能性。掌握这一技能,...

    27.面向对象高级-继承的进一步研究

    - 如果父类中的方法被声明为`private`,那么即使子类中声明了同名方法,也不能认为这是覆写行为,因为子类无法访问到父类中的私有方法。 #### 属性的覆盖 除了方法覆写之外,还可以通过子类重新定义父类的属性来...

    pytorch ImageFolder的覆写实例

    接下来,我们定义一个新的 `CustomImageFolder` 类,继承自 `ImageFolder` 并覆写必要的方法。 ```python from torchvision.datasets import ImageFolder import os import random from PIL import Image class ...

    解决Kotlin 类在实现多个接口,覆写多个接口中相同方法冲突的问题

    在Kotlin编程语言中,类可以实现多个接口,但当这些接口定义了相同的函数签名时,会出现覆写方法的冲突。解决这个问题的关键在于利用Kotlin的语法特性来明确指定调用哪个接口的方法。本文将详细讲解如何处理这种冲突...

    C++面试基础问题

    覆写方法必须与其被覆写的方法具有相同的签名,除了将`virtual`替换为`override`外,其他部分(如方法的返回类型、参数列表等)必须保持一致。 #### 十一、能否覆写私有虚方法? 不能。子类无法访问父类中的私有...

    javascript 方法覆写实例代码

    知识点一:JavaScript中的方法覆写 在JavaScript中,方法覆写是一个常见的概念,它指的是在子类或者函数作用域中重新定义一个与父类或者外部作用域中同名的方法,以实现特定的功能。方法覆写通常用于实现多态性,即...

    Java的覆写操作实例分析

    本文将通过实例分析,详细介绍Java的覆写操作,包括属性覆写和super调用父类方法覆写相关操作技巧。 属性覆写 在Java中,属性覆写是指子类定义和父类定义之中名称相同的属性。例如,在上面的实例中,我们定义了一...

    \如何:在 Visual C# .NET 中建立一个平滑的进度条

    为了实现平滑效果,需要覆写`OnResize`和`OnPaint`方法。在`OnResize`方法中,我们调用`Invalidate()`方法以触发重新绘制事件;而在`OnPaint`方法中,我们利用GDI+图形对象来绘制进度条的实际填充部分。具体而言: ...

    Java 编程军规.docx

    - **解释**:当一个对象的equals()方法被覆写后,如果没有同时覆写hashCode()方法,可能会导致该对象在哈希表中的行为不符合预期。 - **实践建议**:确保equals()和hashCode()方法的一致性,以避免潜在的问题。 ###...

    Java集合类原理详解.pdf

    ##### 1.4.4 覆写hashCode() 为了提高哈希表的性能,需要重写`hashCode()`方法,确保不同但相等的对象具有相同的哈希码。 #### 1.5 Set Set是一种不重复元素的集合。 ##### 1.5.1 常用方法 Set继承自Collection...

    Java集合排序及java集合类详解(Collection、List、Map、Set

    为了确保`HashMap`的正确性,键对象需要正确覆写`hashCode()`和`equals()`方法。 ### 1.5 Set `Set`是不允许重复元素的`Collection`,通常用于需要唯一性保证的场景。 #### 1.5.1 概述 `HashSet`是最常用的`Set`...

    集合概述set、List、Map

    因此,通常需要覆写`hashCode()`和`equals()`方法以确保正确的键值匹配。 #### 五、Set **Set**接口是一个不允许重复元素的集合,它继承自Collection接口。 ##### 5.1 常用方法 Set接口提供了与Collection相同的...

    php实现parent调用父类的构造方法与被覆写的方法

    本文实例讲述了php实现parent调用父类的构造方法与被覆写的方法。分享给大家供大家参考。具体分析如下: 覆写:被重新设计。 在子类中定义构造方法时,需要传递参数给父类的构造方法,否则我们得到的可能是一个构造...

Global site tag (gtag.js) - Google Analytics