Java习题求解

weixin_45088952 2019-05-18 08:42:47
求问一道题目 答案为什么等于18
...全文
137 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39936465 2019-05-20
  • 打赏
  • 举报
回复
引用 楼主 weixin_45088952 的回复:
求问一道题目 答案为什么等于18
子类重写方法后,父类调用的也是子类的方法。
菩提石 2019-05-20
  • 打赏
  • 举报
回复
掌握点1:类的生命周期
有父子类的情况:
(1)父类的static变量和static初始化块
(2)子类的static变量和static初始化块
(3)父类的实例变量、初始化块
(4)父类的构造方法
(5)子类的实例变量、初始化块
(6)子类构造方法
2.多态与继承:
子类重写父类的方法,多态下调用子类方法,没有重写的方法,调用父类的方法。
因此执行顺序为J_SuperClass()->父类mb_add()->J_SupClass()->子类mb_add() 注意,父类子类都执行了mb_add()方法,但是结果并不相互影响,此时m_data=5 ->子类mb_add() 此时m_data=18,调用父类print();
zhongtaolihai 2019-05-19
  • 打赏
  • 举报
回复
继承和多态好好看看
qq_40674493 2019-05-19
  • 打赏
  • 举报
回复
你的代码中涉及到两个知识点:继承和多态
继承中的构造方法
1、子类的构造过程中必须调用其基类的构造方法。(因为要继承,所以必须先实例化父类,不然怎么继承)
2、子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法。
  2.1、使用this(argument_list)调用本类的另外构造方法。
   2.2、如果调用super()或者this(),必须写在子类构造方法的第一行(但如果仅是通过this或super来访问成员属性则没有这个要求)。
3、如果子类的构造方法中没有显式的调用基类的构造方法,则系统默认调用基类的无参数构造方法。
4、如果子类构造方法中既没有显式调用基类构造方法,而基类又没有无参数的构造方法,则编译出错。
朝霞清辉 2019-05-18
  • 打赏
  • 举报
回复
大概思路应该是执行子类构造方法前会先执行父类构造方法

62,628

社区成员

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

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