我发现子类其实可以重载父类方法
class S{
public int print(int a){
System.out.println("父");
return 1;
}
}
class D extends S{
public int print() {
System.out.println("子");
return 1;
}
}这个如果把返回值改成别的参数相同就会出错,我觉得是编译器认为是重写,但是如果
参数不同编译器就认为是重载了,但是重载还不符合定义,那这个属于什么,之前百度过有说这个是重构的,但是重构是什么
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已采纳
子类重载父类方法,还是怎么回事
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
6条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
EmilyWang_珏 2017-07-23 18:59关注根据代码分析,你的说法有错误:
1、print方法存在两个类中,就不是重载了。不符合重载的定义。
所以,还是好好想想吧......本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2020-01-12 17:27回答 6 已采纳 1. a是一个Animal类型引用,调用方法时,编译器会先去Animal类中的虚函数表中找有没有可以调用的方法。编译器找到Animal中的bark方法,而bark并没有被Dog实现,且Animal中的
- 2022-04-26 01:55回答 3 已采纳 子类重写、实现父类的方法时,其父类对应的注解是不会继承下来的。所以你这种情况: 1)子类重写方法后不加 @Cacheable 注解,外部调用这个方法是不会有缓存的。 2)如果子类增加了
- 2021-11-09 06:08回答 2 已采纳 优先匹配类型一致的那个方法,如果没有,将参数的类型向上升级为其父类,继续匹配;如果最终都没有匹配到合适的方法,则报错;所以一个方法有2个重载方法,一个参数为子类,一个方法参数为该子类的父类时,如果参
- 2021-02-12 12:18nana 不是banana的博客 Java的多态机制即重写,重写主要用于子类和父类之间,在父类中定义了一个方法,同时在子类中对这个方法进行重写,实现子类行为的特殊化,例如:1 classAnimal{2 void eat(){ System.out.print("animal eat");...
- 2021-08-22 15:01回答 2 已采纳 1.根据重载的定义,一个类中方法名相同参数类型不同的方法称为重载,所以如果在自不能重载父类的方法,只能重写父类的方法2.@overridet是为了在编译时期检查自类是否重写父类的方法
- 2017-07-23 20:35回答 5 已采纳 1 不是重写,重写方法必须和被重写方法具有相同的参数列表,且返回类型必须和被重写方法的返回类型相同或者是返回类型的子类型。 题目中不满足第一条:父类print方法参数为int类型,子类prin
- 2022-04-21 03:58回答 1 已采纳 public class Person { protected String name; protected int age; public Person(String
- 2021-03-15 04:54琦玉老师比我秃的博客 子类中重载父类的方法就是在子类中覆盖从父类中继承过来的方法,父类中的方法被子类继承过来不就可以直接使用吗?为什么还要重载呢?因为有一些情况我们必须要覆盖的。例如,有一个“鸟”类,在这个类中定义了...
- 2021-01-03 02:38回答 2 已采纳 在一个类中,如果你不声明成员的范围,默认为private,所以你在20行的s.print()会报错,在类外是不能调用类的私有成员变量或者私有成员函数。 22行是强调了基类的虚函数输出,输出内容是Ba
- 2012-08-17 08:41回答 5 已采纳 如何你把Audi改成如下就可以达到你的要求: [code="java"]public class Audi extends Car { @Override public void car(O
- 2009-09-11 11:51回答 22 已采纳 [code="java"]class Foo { public int a; public Foo() { a = 3; } public int addFive() {
- 2021-09-30 15:25Java 子类重写父类的方法详细解析 Java 中子类重写父类的方法是面向对象编程的核心概念之一。子类可以重写父类的方法,以改变或扩展父类的行为。但是,子类重写父类的方法需要遵守一定的规则,以避免编译器错误和...
- 2021-02-27 03:10Wergulskerchkov的博客 子类不能重写父类的静态方法,私有方法。即使你看到子类中存在貌似是重写的父类的静态方法或者私有方法,编译是没有问题的,但那其实是你重新又定义的方法,不是重写。具体有关重写父类方法的规则如下:重写规则之一...
- 2021-03-13 11:17Xenophon Tony的博客 父类引用默认调用子类重写的方法如果父类的引用p指向了子类的实例,则通过这个引用p访问同名方法时,调用的是子类重写的方法。父类引用p可以指向不同的子类,调用不同子类重写的不同的同名方法,进而达到类间多态的...
- 2022-02-14 10:50小安雨的博客 子类能重载父类的方法?
- 没有解决我的问题, 去提问
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司