关于java子类方法覆盖(Override)父类方法时,该子类方法返回值的问题

DSP28335新手避坑指南:手把手教你用CCS6.2生成10KHz SPWM(附完整工程) 本文详细介绍了如何使用DSP28335开发板和CCS6.2环境生成10KHz SPWM波形的完整工程指南。从开发环境配置、ePWM模块设置到SPWM算法实现,特别针对新手常见问题提供了解决方案和调试技巧,帮助工程师快速掌握DSP28335的SPWM生成技术。 阅读详情
0

书上说在方法覆盖(override)时,一定要保证返回值的兼容性。允许子类将覆盖方法的返回值类型定义为父类被覆盖方法返回值类型的子类型。我知道在子类中覆盖父类的方法时,子类方法的返回值类型与父类该方法的返回值类型相同肯定不会报错。但下面的代码为什么会错?

class OverRideA
{
    private int name;
    private int age;

    public OverRideA(int n,int a)//自定义构造器
    {
        name=n; age=a;
    }

    public int getN()//返回值类型为int
    {
        return age;
    }
}

class OverRideB extends OverRideA
{
    private short id;

    public OverRideB(int n,int a)
    {
        super(n,a);
        id=10;
    }

    public short getN()//覆盖父类的同名方法,返回值类型为short
    {
        return id;
    }

照理来说short应该是int类型的子类,short应该和int兼容的。但为什么编译器会报错:

3个回答

0

已采纳

引用文字
short应该是int类型的子类,short应该和int兼容的

这句话是有问题的,int和short是primitive type,不是reference type,因此int和short之间没有子类和父类的关系。

0

都是基础类型啊同志

0

java方法重写跟重载,跟返回类型是没有关系的,只跟参数类型个数,有关我是这么理解的,
你这种写法,当之类在调用此方法时,虚拟机怎么知道你要调用父类的还是自己的方法,所以基本上编译都是无法通过的

android 如何分析应用的内存(十六)——使用AS查看Android堆 在前面,先介绍了如何使用jdb和VS code查看应用栈相关内容。本文将介绍,如何查看堆中的内容。 阅读详情

相关推荐

10BASE-T1S协议中的PLCA机制:实现无碰撞网络传输的关键

本文深入解析了10BASE-T1S协议中的PLCA(物理层冲突避免)机制。作为IEEE 802.3cg标准的关键部分,PLCA通过循环调度与机会传递,从根源上避免了网络碰撞,为工业与汽车等场景提供了确定性的低延迟传输保障,是实现可靠实时通信的核心技术。

weixin_29250403的博客 209

父类中的方法被覆盖以及子类调用父类覆盖的方法

覆盖 override   覆盖是指在有继承关系的类中,子类中实现了与基类同名的方法,在子类的实例调用该方法时,实际调用的是  子类中的覆盖版本,这种现象叫做覆盖 调用super 函数的两个方法:   1.super(cls, obj) 返回绑定超类的实例(要求obj必须是cls类型的实例)   2.super() 返回绑定超类的实例,等同于: super(__class__, 实例...

weixin_30460489的博客 2796

uni-app蓝牙MTU设置失效探因:从20字节限制到跨设备兼容性实战

本文深入探讨了uni-app蓝牙开发中MTU设置失效的常见问题,特别是20字节限制的成因及解决方案。通过分析设备兼容性、蓝牙协议栈特性和系统版本差异,提供了智能延迟策略、设备特征检测和渐进式MTU提升等实战方案,帮助开发者优化蓝牙数据传输效率。

weixin_29289821的博客 288

java重写子类方法的返回类型必须是父类方法返回类型的同类或者派生类

java,方法重写,返回类型问题

博客 1276

别再乱装了!Win10下NVIDIA显卡驱动、CUDA 11.0和cuDNN 8.0.5保姆级配置指南(含版本匹配避坑)

本文提供Win10下NVIDIA显卡驱动、CUDA 11.0和cuDNN 8.0.5的保姆级配置指南,详细解析版本匹配逻辑与安装步骤。从驱动选择到环境变量配置,再到框架测试,手把手教你避开常见坑点,确保深度学习环境一次配置成功。特别强调版本匹配的重要性,帮助开发者高效搭建GPU开发环境。

weixin_30600197的博客 307

从mseed到SAC格式转换全攻略:mseed2sac工具安装与批量处理技巧

本文详细介绍了如何将mseed格式的地震数据高效转换为SAC格式,涵盖mseed2sac工具的安装、单文件转换技巧、批量处理自动化实现以及元数据高级处理策略。通过具体命令和脚本示例,帮助地震学研究者快速掌握数据预处理的关键技术,提升波形数据分析效率。

ruby5的博客 927

java 返回值 泛型 继承_Java泛型 - 返回父类的子类

一、栗子public class GenericityInher {//error: Type mismatch: cannot convert from ArrayList to ArrayListpublic ArrayList list(){return new ArrayList();}//rightpublic Parent inher(){return new Child();}//E...

weixin_39997253的博客 1051

Pytest教程:Pytest插件原理

Pytest的插件系统是其强大功能的核心,它允许用户和开发者扩展和定制测试框架的行为。要深入理解Pytest插件的原理,我们需要从Pytest的架构和设计模式开始,然后深入到底层源码。

旦莫的博客 636

Java面试题一

1、什么是B/S架构?什么是C/S架构 1. B/S(Browser/Server),浏览器/服务器程序 2. C/S(Client/Server),客户端/服务端,桌面应用程序 2、Java都有那些开发平台? 1. JAVA SE:主要用在客户端开发 2. JAVA EE:主要用在web应用程序开发 3. JAVA ME:主要用在嵌入式应用程序开发 3、什么是JDK?什么是JRE? 1. JDK:java development kit:java开发工具包,是开发人员所需要安装的环境 2

King_wq_2020的博客 504

基于DSIFT多尺度图像融合的MATLAB代码

多尺度图像融合是一种常用的图像处理技术,它可以将具有不同尺度和空间频率特征的图像融合成一幅更具信息丰富度和视觉效果的图像。DSIFT算法是一种基于SIFT算法的改进版本,它在提取图像特征时采用了密集采样的方法,能够有效地提取图像的局部特征。多尺度图像融合基于DSIFT算法的思想,通过在不同尺度下提取图像的DSIFT特征,并将这些特征进行融合,得到最终的融合图像。然后,通过DSIFT算法提取了两幅图像的特征。通过运行上述代码,我们可以在MATLAB中实现基于DSIFT多尺度图像融合的算法,并观察到融合结果。

IELLQUI9的博客 180

ROS2 多机器人导航仿真入门教程(一)

RMF 是建立在 ROS 2 基础上的一系列可重复使用、可扩展的库和工具,可实现任何类型机器人系统的异构机群的互操作性。RMF 利用标准化的通信协议与部署机器人的基础设施、环境和自动化系统进行通信,以优化关键资源(如机器人、电梯、门、通道等)的使用。它通过资源分配和通过 RMF 核心(将在本书后面详细介绍)防止共享资源冲突,从而为系统增加智能。RMF 灵活而强大,几乎可以在任何通信层上运行,并与任何数量的物联网设备集成。RMF 的架构设计允许随着环境自动化水平的提高而扩展。

2506_90492529的博客 1659

Java大数据学习第八天----继承 重写 final 静态static 多态

继承中变量的使用 父类成员变量和子类成员变量重名时,使用 super.变量名 指定父类的成员变量 继承中构造方法的使用 创建子类对象时 会先调用父类的无参构造 因为子类的构造函数中默认存在一个super(); 如果父类没有无参构造的话,我们需要手动指定子类去调用父类的含参构造super(参数); 构造方法不可以被继承,原因是构造方法必须是本类类名,不可能在子类中存在一个父类类名的构造方法 方法的重写 重写:子类对父类的方法不满意时,可以重写父类的方法 注意:重写是在不改变父类方法的前提下,实现功

weixin_61747318的博客 263

成功解决安装cuda的时候,下载的文件自动消失,并且出现An unknown error has occurred

成功解决安装cuda的时候,下载的文件自动消失,并且出现An unknown error has occurred. 目录 解决问题 解决思路 解决方法 解决问题 安装cuda的时候,下载的文件自动消失,并且出现An unknown error has occurred. 解决思路 发生未知错误。 解决方法 很可能是因为当前电脑下载的cuda版本不适合当前电脑GPU支持的cuda版本! 推荐文章:CV:Win1..

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 7523

java重载返回值子类_关于java子类方法覆盖(Override)父类方法时,该子类方法返回值的问题...

书上说在方法覆盖(override)时,一定要保证返回值的兼容性。允许子类将覆盖方法的返回值类型定义为父类被覆盖方法返回值类型的子类型。我知道在子类中覆盖父类的方法时,子类方法的返回值类型与父类该方法的返回值类型相同肯定不会报错。但下面的代码为什么会错?class OverRideA{private int name;private int age;public OverRideA(int n,i...

weixin_33879932的博客 506

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

java 方法返回子类_关于java子类方法覆盖(Override)父类方法时,该子类方法返回值的问题...

书上说在方法覆盖(override)时,一定要保证返回值的兼容性。允许子类将覆盖方法的返回值类型定义为父类被覆盖方法返回值类型的子类型。我知道在子类中覆盖父类的方法时,子类方法的返回值类型与父类该方法的返回值类型相同肯定不会报错。但下面的代码为什么会错?class OverRideA{private int name;private int age;public OverRideA(int n,i...

weixin_36312811的博客 734

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

java 子类覆盖了父类方法 能有什么办法调用父类的方法_一文读懂Java语言方法的重写(覆盖、Override)...

很多初学Java语言的小伙伴,在学到“面向对象”这块内容的时候,都会学到的一个概念,那就是“方法的重写”。重写又叫覆盖,英文名为“Override”。虽然”重写”、 ”覆盖”、“Override”这些名词都很容易记住,但很多人并没有真正理解Java语言为什么要提供“重写”这种编程机制,也不知道什么时候该重写父类中的方法,下面我们通过一篇文章来全面学习一下“方法的重写”。假设有一个类叫做Father...

weixin_39966130的博客 2631

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java方法覆盖Override

一旦加上这个注解,编译器就知道这个方法是意图覆盖父类中的某个方法,于是就会检查父类中是否有同名方法,如果发现子类中的方法与父类中任何一个方法都不同名,那么就标出语法错误来提示程序员。而“覆盖”是从代码运行效果的角度来说的,它形象的体现出:当子类重写了父类的某个方法之后,当子类对象通过方法名称调用该方法,不会调用到父类中定义的那个方法,只能调用到子类中所定义的那个同名方法,父类中的那个方法如同被子类中重新定义的同名方法覆盖住不见踪影一样,因此叫“覆盖”。子类的方法如果直接访问a,那么肯定是访问子类自身的a。

m0_74228964的博客 1352

一文读懂Java语言方法的重写(覆盖、Override)

很多初学Java语言的小伙伴,在学到“面向对象”这块内容的时候,都会学到的一个概念,那就是“方法的重写”。重写又叫覆盖,英文名为“Override”。虽然”重写”、 ”覆盖”、“Override”这些名词都很容易记住,但很多人并没有真正理解Java语言为什么要提供“重写”这种编程机制,也不知道什么时候该重写父类中的方法,下面我们通过一篇文章来全面学习一下“方法的重写”。 假设有一个类叫做Father,并且我们假设因为某种原因,我们只能使用这个类,但没有办法修改这个类的源代码。

穆哥学堂--Java学习园地 2956

Java 子类继承父类方法的重写(或者覆盖,override)

1、子类重写父类方法的方法名、参数类型必须与父类被重写(被覆盖)的方法相同; 2、子类方法的返回值类型必须小于等于父类被重写的方法的返回值类型; 3、子类抛出的异常小于等于父类方法抛出的异常; 4、子类的访问权限大于等于父类的访问权限;(子类重写了父类的方法,子类的方法的权限修饰符不能比父类低,最好与父类一致。(public > 默认修饰符>protected>private) 父类是publ

abe_abd的博客 6626

【Java】Java继承后子类重写父类方法与重载的区别

Java中重写 子类方法的重写:Override 指的是:子类中出现了和父类一模一样的方法时,子类重写父类的方法 Java中重载 重载:Overload 指的是一个类中的同名方法,参数列表不同,返回值可能也不同。 区别 重写必须发生在两个类之间,子类和父类,而重载发生在同一个类中的同名方法之间; 重写时子类和父类的方法一模一样,代表方法名,修饰符,参数列表,返回值完全一样。一般...

胡小小六的博客 5492

java方法覆盖Override

1.什么时候考虑使用方法覆盖? 父类中的方法无法满足子类的业务需求,子类有必要对继承过来的方法进行覆盖。 方法覆盖又叫做:方法重写(重新编写),英语单词叫做:Override、Overwrite。 比较常见的:方法覆盖、方法重写、override 2.什么条件满足的时候构成方法覆盖? 第一:有 继承 关系的两个类 第二:具有 相同方法名、返回值类型、形式参数列表 第三:访问权限不能更低,,可以更高。 第四:抛出异常不能更多,可以更少。 访问权限修饰符权限从高到低排列是:public ,protected

一只小菜鸡 1288

Java中重写父类的方法

子类扩展了父类,子类是一个特殊的父类。大部分时候子类是以父类为基础的,但是有时候子类需要重写父类的方法。比如说我们定义了一个Person类来表示人类。里面定义了一个方法为上洗手间,ManPeople 继承了这个类,Man上洗手间的方式和Woman上洗手间的地方有所不同,因此他要重写Person类中的方法。 class Person { private int age ; private String name; public void goWc() { System.out.println("我去

m0_46189068的博客 3538

java重写 /override/覆盖与多态

重写 =override=覆盖override与多态息息相关!可以说二者是完全等价的。

zxyOVO的博客 1959

C#继承中的override(重写)与new(覆盖)用法

  首先声明一个父类Animal类,与继承Animal的两个子类Dog类与Cat类。父类Animal中有一个Say方法,而子类Dog与Cat分别override(重写)与new(覆盖)了Say方法。   让我们通过实例来看一下这两者有什么相同与不同之处。 1 public class Animal 2 { 3 public virtual void Say() 4 { 5 Console.WriteLine("...

Peter的博客 3326

java中 子类中可以定义和父类相同的方法

java中 子类中可以定义和父类相同的方法,优先执行子类中的方法。

qq_37089829的博客 3348

Java修炼——继承方法之重写(override)_返回值类型

继承方法的重写override_返回值类型的问题(重载overload) 子类重写父类的方法,子类自身的行为替换父类的行为,覆盖也是重写。 重写要符合三个要点: 1.方法名,参数列表相同 2.返回值类型和声明异常类型,子类小于等于父类 3.访问权限,子类大于等于父类 重写父类的方法: package com.bjsxt.test; public class TestOverride { pu...

欢迎来到我的博客,一起学习Java! 1846
上一篇: 有关java中子类覆盖父类的方法的返回值的问题
下一篇: java面试备忘录
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值