老师我是不是可以这样理解

老师我是不是可以这样理解

就是A one = new b ();然后A是B的父类,只能调用B的父类重写方法,其他的B.setget和方法都调不了,却可以调用A的,是不是就是个加强版的A one = new A就是重写方法的区别

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿慧 2020-04-19 16:11:48

同学你好,A one = new B();如果子类重写了父类的方法,会调用子类的方法,如果没有重写则调用父类的方法。不是只能调用父类的重写方法。get,set方法同理。如下图:

http://img1.sycdn.imooc.com//climg/5e9c078e09218ca204790324.jpg

http://img1.sycdn.imooc.com//climg/5e9c079f0983bb5904900285.jpg

http://img1.sycdn.imooc.com//climg/5e9c07a7096db38905640274.jpg

 如果同学想要调用父类的方法,可以在B类方法中调用父类的方法。
2、A one = new B();体现了多态。A one = new A();没有体现多态。B可以理解为是A的扩展,但是B是A的增强的理解不是很恰当。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 一giao我勒giao #1
    是不是A one = new B比A one = new A多了个子类B的重写父类方法可调用?
    2020-04-19 16:32:33
  • 提问者 一giao我勒giao #2
    不对,应该是可以调用子类的setget方法还有重写父类的方法,唯独不能调用子类独有的方法,
    2020-04-19 16:36:21
  • 同学你好, 1、A one = new B();中one其实是B类型。子类B中可以有自己的属性和方法,也可以重写父类的方法。只有重写了父类中的方法,可以被调用,如果父类中没有子类中新添加的则不能够调用。one不可以调用B类中父类没有的方法,可以调用父类中的方法。 2、A one = new A();中one是A类型。one只能调用A类中的方法。 如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2020-04-19 18:38:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师