eclipse中抽象类父子类重写的问题

weixin_42038295 2018-04-21 10:54:42
定义了一个抽象父类,这是其中的一个抽象方法public abstract void say();
子类Boy和Girl中的say方法分别是public void say(String content){
System.out.println(getName()+"用带有阳刚之气的声音对"+girlfriend.getName()+"说:"+content);
}

public void say(String content){
System.out.println(getName()+"微笑着用甜美的声音对慕容紫英说:"+content);
}
此时报错,没有重写父类中的say方法。但是测试类中可以运行并且没问题。run中提示有错误但不影响运行。
求问:
抽象类的子类不是应该要重写父类中所有的抽象方法么,上面子类没有重写只是重载为啥不影响运行。。
...全文
988 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jian_j_z 2018-04-25
  • 打赏
  • 举报
回复
建议和重载一起研究一下
  • 打赏
  • 举报
回复
子类重写父类的抽象方法,方法名,返回值和参数都必须一样
monk- 2018-04-25
  • 打赏
  • 举报
回复
因为你的抽象函数的say()是无参的,你覆盖只能覆盖无参的say(),你在子类里写了一个带参的say(String),函数签名不一样不算覆盖
yjsl__ 2018-04-22
  • 打赏
  • 举报
回复
在cmd里确实过不了
Test.java:14: 错误: Boy不是抽象的, 并且未覆盖Person中的抽象方法say()
class Boy extends Person {
^
Test.java:19: 错误: Girl不是抽象的, 并且未覆盖Person中的抽象方法say()
class Girl extends Person {
^
3 个错误
在eclipse里面由于保存一次编译一次,之前可能有编译好的文件,如果有错误,eclipse会用上次编译通过的文件执行,其实最新的编译过不了的,在main方法中调用可能出现问题的代码,则会抛异常
沁海棠 2018-04-22
  • 打赏
  • 举报
回复
虽然不知道具体原因但我猜一下,希望有大神,详细解释 编译没有报错,如果运行没有调用抽象方法也不会报错,应该是忽略了吧,看他的class文件里面有显示说存在问题,没有实现父类方法,但是为什么能通过编译就不知道了.

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧