问答详情
源自:11-2 代码实现

父类与子类重写

既然要在子类里重写方法,为什么不直接在子类里写方法,还要在父类里写一个然后在子类里再重写一次?

提问者:GODOG 2016-09-20 14:57

个回答

  • 心有猛虎_细嗅蔷薇
    2016-09-20 18:52:04
    已采纳

    你的意思是想声明一个类,写个方法,直接调用。那这样还要继承干嘛用呢

    我问你:什么是继承?为什么要有继承?(继承就是当你写一个类时,虽然这个类满足了某些功能但是你又想拓展它的功能,此时你就可以使用继承机制在写一个该类的子类,来完成你想实现的功能)

    还有,即使你没有明确指出要继承的类,也总是隐式地从根类Object进行继承。

    呃。。。不知道你明白了没

  • 心有猛虎_细嗅蔷薇
    2016-09-20 16:28:12

    满足方法的重写的前提是继承——子类重写会覆盖父类的方法并优先调用子类的方法。

    前边课程里有讲过。Animals为父类,定义了一个方法friends-“动物是人类的好伙伴”。Dog继承了Animals的方法,但相比其他动物,我们让它突出“狗是人类最忠实的伙伴”。这时候就用到了方法的重写。有点像共性和个性的辩证关系。

    小提示:在方法的多态中(两个类有继承关系才可以使用多态),如果你直接在子类里写方法,就不能通过父类的引用调用子类的独有方法。

  • CaptainJackSparr
    2016-09-20 15:52:41

    父类的方法是用来约束子类方法的,给子类方法一个模板