有关java中子类覆盖父类的方法的返回值的问题

ERA5数据驱动WRFV4.4实战:单层嵌套配置与关键报错排查指南 本文详细介绍了使用ERA5再分析数据驱动WRFV4.4模式进行单层嵌套模拟的完整实战流程。内容涵盖从数据精准下载、WPS前处理配置、WRF核心参数设置到高频报错的深度排查与解决方案,旨在帮助初学者在有限服务器资源下,高效完成WRF模拟并规避常见陷阱。 阅读详情

有关java中子类覆盖父类的方法的返回值的问题 10

如果在父类Person:
public class Person {
private String name;

public String showName() {
return name;
}
}
而覆盖了showName方法的子类为:
public class Teacher extends Person{

public String showName() {
return name+"老师";
}
}
为什么这样的覆盖方法是不正确的?
而子类的覆盖方法的返回值必须写成
return super.showName() + "老师";
才算正确?
收起
幽静夜雨  |  浏览 2125 次
问题暂时关闭
推荐于2016-08-14 04:51:34 最佳答案
覆盖父类的方法,那就是重写,子类会调用重写的方法。

override可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。除了这个典型的用法以外,我们在继承中也可能会在子类覆盖父类中的方法。在覆盖要注意以下的几点:
1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。
275408194 | 2016-11-19 15:50
返回值:子类可以是父类的兼容值 回复

有车2015 

采纳率:85% 来自团队:思想驱动 擅长: 电脑/网络

其他回答

很简单,在这个method里面的时候,你写name,系统不会自动匹配super.name而是自动匹配this.name,由于你这个name在this里面没有,所以系统就找不到了。你写成super.name应该也能通过。
追问
谢谢回答,我想多问一句,既然父类中的private属性子类不能继承,那么子类是否拥有问题中的name属性了?
追答
拥有,但是不能用。你要是这么申明一个对象:
Person p=new Teacher("blablabla");
那么p.name就可以用了。你想直接继承变量,应该用protected。
我复制一张对照表:
作用域        当前类   同一package      子类     其他package 
public          √              √                     √          √ 
protected       √            √                    √          × 
friendly        √             √                    ×          × 
private         √             ×                    ×          × 

还有一种叫default。就是你什么都不加的时候的作用域,那个作用域和publick类似,但是不支持其他package而是支持java.lang.Object这个package
 本回答被提问者采纳
timom    |  推荐于2016-03-06 22:16:29
评论(2) 
4  4
qjzh0603 | 2014-4-30 10:06
写成super.name通过不了,因为name是private属性。 回复
热心网友 | 2013-2-15 11:01
这位老师答得真好:) 回复
父类中的name定义为private,只能被父类自己识别,可以把private改成public。
youlian20    |  发布于2012-10-06 12:37
评论 
0  0
person中的name是private的,子类不能直接去调用。
winters1224    |  发布于2012-01-21 15:39
评论 
0  0
这种题目有木有,我不知道哎!!
玉米肉丸    |  发布于2012-01-21 15:38
016、自动标注方案实战:用大模型(SAM/Grounding DINO)生成 YOLO 格式伪标签 本文介绍了一种利用大模型自动生成YOLO格式伪标签的实战方案。针对传统人工标注效率低、易出错的问题,作者提出结合Grounding DINO(零样本检测)和SAM(精细分割)的优势:前者快速生成候选框,后者优化边界精度。文章详细阐述了技术选型理由(平衡速度与精度)、环境搭建避坑指南(关键依赖版本)、核心三步流程(检测-分割-格式转换)以及后处理技巧(置信度分级过滤)。实验表明,该方案相比纯人工标注可节省80%时间,且经过SAM优化的边界框精度提升10-15%。特别强调了工程细节:文本描述格式、阈值设定、小目 阅读详情

相关推荐

AD创建属于自己的元件库(详细)

我今天开始学习AD2022,但是我想自己创建属于自己的元件库,但是奈何找了好多教程就是随便几句话就把我打发走了,弄了一天都没搞定(也许是我比较菜),所以现在乱懂了,自己写一个属于我们自己小白的教程,希望有用吧哈哈我比较偷懒,直接使用嘉立创上画好的元件导入,和我们自己创建自己画的步骤其实都一样。

qq_33591173的博客 2万+

java继承实质、父类引用指向子类对象(多态)、声明时类型、运行时类型

继承是面向对象的三大特征(封装、继承和多态)之一,也是java语言的重要特性。 那么,继承父类的成员变量和继承父类的方法有什么区别吗?答案是肯定的。有的人甚至都不知道这个问题的存在。 继承成员变量和继承方法的区别: 可能大家都认同 “当子类继承父类时,子类会获得父类中定义的成员变量和方法,当访问权限允许的情况下,子类可以直接访问父类的变量和方法”。这种观点其实稍显笼统,因为jav

每天进步一点点... 5211

深信服aCloud虚拟存储VS3.0实战:从数据分片到仲裁机制的全流程解析

本文深度解析了深信服aCloud虚拟存储VS3.0的核心架构与生产级实践。从数据分片、条带化写入、多副本机制到智能缓存分层,详细阐述了其如何实现高性能与高可靠性的平衡。同时,深入剖析了动态均衡、平滑扩容以及故障恢复与仲裁机制,为运维人员和技术决策者提供了在超融合基础架构(HCI)中部署和管理虚拟存储的实战指南。

net55的博客 588

继承和方法覆盖

继承 什么是继承关系: 基于某个父类对对象的定义加以拓展,而产生新的子类定义,子类可以继承父类原来的某些定义,也可以增加原来父类所没有的定义,或者覆写父类中的某些特性。 从面向对象的角度上说:继承是一种从一般到特殊的关系,是一种“is a”的关系,即子类是对父类的拓展,是一种特殊的父类,比如:狗是动物的一种特殊情况,狗属于动物。 在Java语言中,存在多个类的时候,我们使用”extends”关键字...

JamesShakespeare的博客 561

DrissionPage无头模式破盾记:实战绕过CloudFlare 5秒验证

本文详细介绍了如何使用DrissionPage无头模式绕过CloudFlare 5秒盾验证,提升爬虫效率。通过关键参数配置、服务器环境问题处理及高级绕过技巧,如动态UA轮换和鼠标移动模拟,帮助开发者有效应对反爬机制。实战案例展示了如何结合最新Chrome UA和参数设置实现稳定数据采集。

weixin_29327525的博客 487

Synopsys工具filter命令:从数据筛选到高效IC设计的实战指南

在数字集成电路设计流程中,数据筛选与查询是工程师处理海量网表、时序报告和设计约束的核心需求。其原理在于通过声明式查询语言,直接对设计对象(如单元、网络、路径)的属性进行逻辑判断与模式匹配,从而精准定位目标。这种技术价值在于将工程师从繁琐的过程式脚本循环中解放出来,大幅提升代码可读性与运行效率,直接调用工具内置的高性能查询引擎。在实际应用场景中,它广泛用于物理与时序联合分析、层次化模块操作、动态约束生成以及自动化报告生成。本文聚焦于Synopsys工具链中filter命令的高阶用法,深入解析其表达式语法、正则

weixin_28007513的博客 577

继承中的方法重写(覆盖)

继承中的方法重写(覆盖)

m0_73503454的博客 408

OCCT(Open CASCADE Technology)入门-2.搭建开发环境

安装完成后,在【扩展】菜单下会看到【Qt VS Tools】菜单,打开子菜单【options】进入qt配置窗口。打开VS后随便创建一个新项目,进入开发环境主页,打开顶部菜单【扩展】->【管理扩展】打开管理扩展窗口。然后点击右下角【创建】,一路【next】即可,最后会进入到开发主界面,得到一个下面的工程结构。好了,到这里基本的环境我们已经安装好了,下面我们开始创建项目并配置开发环境。打开顶部菜单【项目】,点击最后一个菜单项【xxx属性】,进入项目配置界面。这里的配置一般不用改,我们看【Versions】

2501_91235145的博客 2875

Debug的使用、方法的重写,权限修饰符

如何调试程序: 1.System.out.println(). 2.Debug 方法的重写: 1.重写:子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作。 2.应用:重写以后,当创建子类对象以后,通过子类对象调用子父类中的同名同参数的方法时,实际执行的是子类重写父类的方法。 规定 ①子类重写的方法的方法名和形参列表与父类被重写的方法的方法名和形参列表相同 ②子类重写的方法的权限修饰符不...

w2019424的博客 387

Windows服务器XMRig挖矿病毒深度清除实战指南

XMRig是一种广泛用于Monero(XMR)加密货币挖矿的开源工具,其在Windows环境中的持久化机制已远超传统木马范畴,融合WMI事件订阅、服务伪装、PowerShell无文件执行与注册表隐写等多重反检测技术。理解其基于行为而非特征的生存逻辑,是实现有效检测与根除的前提。该技术具备强隐蔽性、高自愈性与网络通信合法化特征,常见于RDP弱口令爆破、SMB共享泄露及PowerShell远程执行等非漏洞类入侵场景。本文聚焦Windows原生命令与Sysinternals工具链,提供覆盖进程定位、WMI清理、服

weixin_30535843的博客 730

DO-297标准详解:IMA系统开发与认证指南

DO-297的前言部分为读者提供了本指南的概述,说明了该标准的编写背景、主要目标、目标受众以及该文件在开发和认证集成模块化航空电子(IMA,Integrated Modular Avionics)系统中的作用。作为现代航空电子架构的重要组成部分,IMA系统大幅度简化了航空电子系统的硬件配置,增加了灵活性并降低了成本。因此,DO-297成为确保IMA系统开发、集成和认证符合适航标准的核心文件。在现代航空领域,系统复杂性逐渐增加,传统上各子系统独立运行的方式已经不适应多任务、多功能的需求。

qq_41854911的博客 1583

Java中返回体去掉指定字段

在定义的返回体结构中需要忽略指定字段可以使用如下方法:例如 @Getter(onMethod = @__( @JsonIgnore)) private String salt;

Dyeln的博客 6423

AI原生应用API编排:如何实现高效的权限管理?

随着GPT-4、Claude 3等大模型的普及,AI原生应用(从设计之初就以AI为核心的应用)正从“概念”走向“落地”。依赖大量外部API的协同工作(如用户身份API→大模型生成API→支付API→存储API)。但随之而来的挑战是:如何在复杂的API调用链中,确保每个环节的权限合规?本文将聚焦这一问题,覆盖API编排的基础逻辑、权限管理的核心机制(如RBAC/ABAC)、实战工具链(如OPA策略引擎),以及常见场景的解决方案。本文将按照“场景引入→核心概念→原理拆解→实战演练→趋势展望”的逻辑展开。

大数据洞察的博客 451

java不能覆盖父类的_java中子类覆盖父类方法所必须满足的条件

一、描述子类重写(覆盖)父类的方法必须满足的条件:1.父类中的方法在子类中必须可见,即子类继承了父类中的该方法(可以显式的使用super关键字来访问父类中的被重写的方法),如果父类中的方法为private类型的,那么子类则无法继承,也无法覆盖。2.子类和父类的方法必须是实例方法,如果父类是static方法而子类是实例方法,或者相反都会报错。如果父类和子类都是static方法,那么子类隐藏父类的...

weixin_29997937的博客 2758

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java中子类重写(overwriting)父类的方法

一、子类和父类的关系 1、构造方法 子类在新建对象时,首先调用父类的构造方法,然后调用自己的构造方法。 2、成员变量 (1)子类可以继承父类public和protected修饰的成员变量和成员方法。 (2)子类覆盖父类的成员变量 3、成员方法 子类覆盖父类的同名同参数列表方法(重写),可以利用super调用父类被覆盖方法。 4、类型转换 (1)子类转父类(向上转换) 例如:B是继承A的子类,对于如下对象: class A { } class B extends A { } A A1

hehahhe1227的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java中子类覆盖父类方法所必须满足的条件

一、描述  子类重写(覆盖)父类的方法必须满足的条件:  1.父类中的方法在子类中必须可见,即子类继承了父类中的该方法(可以显式的使用super关键字来访问父类中的被重写的方法), 如果父类中的方法为private类型的,那么子类则无法继承,也无法覆盖。 2.子类和父类的方法必须是实例方法,如果父类是static方法而子类是实例方法,或者相反都会报错。 如果父类和子类都是static方法,那么子类...

happydecai的博客 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

私有方法不能被子类覆盖_Java中子类覆盖父类方法所必须满足的条件

packagetong.yue.day4_264;importjava.io.FileNotFoundException;importjava.io.IOException;importjavax.swing.JButton;importjavax.swing.JComponent;/*** 子类重写(覆盖)父类的方法必须满足的条件:* 1.父类中的方法在子类中必须可见,即子类继承了父类中的该方法...

weixin_29066121的博客 1342

Java中子类和父类相关方法的执行顺序

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。无意中看到下面一个题目,大家一起来看看最后的输出结果是什么。反正我看完之后,用IDE测试后感觉知识点得到巩固了。/*** 函数执行顺序测试* Created by 萌小Q on 2017/5/17 0017.*/try{value++;super(5);22 34 17你们答对了么?

pleaseprintf的博客 1363

Java中子类重写父类方法

子类重写父类方法 子类可以继承父类的很多特性,但是在有些时候,父类提供的方法会出现不适用的情况,比如之前的例子里, print() 方法就没有打印出狗狗的品种,这种情况下就可以通过重写父类的方法来解决问题,给它打印出来。 父类Pet类的代码不需要改变,在子类Dog类的基础上作改动即可。先贴一下原来的Dog类: public class Dog extends Pet { private Str...

ryuudesu的博客 3635

私有方法不能被子类覆盖_java中子类覆盖父类方法所必须满足的条件

一、描述子类重写(覆盖)父类的方法必须满足的条件:1.父类中的方法在子类中必须可见,即子类继承了父类中的该方法(可以显式的使用super关键字来访问父类中的被重写的方法),如果父类中的方法为private类型的,那么子类则无法继承,也无法覆盖。2.子类和父类的方法必须是实例方法,如果父类是static方法而子类是实例方法,或者相反都会报错。如果父类和子类都是static方法,那么子类隐藏父类的...

weixin_30110807的博客 1440

java笔记——Java中子类重写(overwriting)父类的方法

(2)子类和父类的方法必须是实例方法,如果父类是 static 方法而子类是实例方法,或者相反都会报错。如果父类和子类都是 static 方法,那么子类隐藏父类的方法,而不是重写父类方法。子类在覆盖父类方法的时候,父类的引用可以调用该方法。如果父类的引用调用子类的方法,那么这个多抛出来的异常,就可能处于一种无法被处理的状态。当一个子类继承一个父类的时候,可以重写覆盖原来父类里面的方法,这个方法要求和父类方法的名称相同,参数列表相同。存在覆盖的情况时,成员方法调用子类,成员变量调用父类。

a25847a的博客 1859

Java中子类继承父类的方法的返回值

在Java中,子类可以继承父类的方法,但不能更改这些方法的返回类型。如果子类想要重写(override)父类的方法,返回类型必须与父类方法的返回类型相同,或者子类的返回类型应为父类返回类型的子类。间接使用:通过成员方法调用成员变量:本类中有成员,使用本类,没有向上找。直接使用:子类对象.成员变量:左边是谁,就用谁的,没有向上寻找。父类子类成员变量重名后,创建子类对象时,在子类成员方法中,访问父类成员变量。在子类成员方法中,访问父类成员方法。本类成员方法中,访问本类成员变量。

weixin_41029325的博客 894

java重写父类方法_Java编程关于子类重写父类方法问题的理解

子类重新实现父类的方法称重写;重写时可以修改访问权限修饰符和返回值,方法名和参数类型及个数都不可以修改;仅当返回值为类类型时,重写的方法才可以修改返回值类型,且必须是父类方法返回值的子类;要么就不修改,与父类返回值类型相同。那么,该如何理解呢?为什么要是父类返回值类型的子类?提出问题:子类必须重写父类所有方法吗?Java,子类不是必须重写父类所有方法的,分为以下两种情况:父类方法为抽象方法时,子类...

weixin_29009401的博客 1490

java中子类怎样调用父类的属性_java的继承、重载(overload)、覆盖(override)的总结...

java为了解决相似属性和行为能共用相同的代码,也是为了便于标准模块化。减少相同代码要多次重复编写的问题,提供了继承、重载和覆盖的功能。继承是针对类,重载和覆盖是针对方法的。一、继承:为了便于理解。我直接举例说明:比如我们现在有图形(Shape)、矩形(Rect)、正方形(Square)、圆(Circle)。Shape类有两个属性变量int x; int y;来表示Shape的位置,一个成员方法来...

weixin_39904612的博客 2222

父类作为方法的形参以及父类作为方法返回值

1、父类作为方法的形参 语句:修饰符 父类类型 方法名(){} 2、父类作为方法返回值 语句:修饰符 void/返回值类型 方法名(父类类型 形参名){} 代码例子: 动物类: /** * @author Mr.Wang * 宠物类 * */ public abstract class Animals { private int health;//健康值...

weixin_30241919的博客 928

java如何调用父类的实例对象_java子类调用父类的方法中包含子类重写的实例方法...

java子类调用父类的方法中包含子类重写的实例方法# 看题目是不是很绕,这个我也不知道怎么才能更简单的表达了# 先看代码:public class Common {public static void main(String[] args) {Sub sub = new Sub();sub.testSub();}}class Parent {protected boolean test() {th...

weixin_34663443的博客 1526
上一篇: java-Cannot reduce the visibility of the inherited method from 父类
下一篇: 关于java子类方法覆盖(Override)父类方法时,该子类方法返回值的问题
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值