public void a(){ b();}等效于public void a(){ this.b();//你要清楚此处的this是指的是调用者!!!!}
你在子类中重写了父类的方法。加@override有利于在编译期间就检查父类是否有该方法,所以如果是重写,最好写上@override。
创建子类的对象, 在调用方法时,如果子类没有重写, 调用父类方法;子类已重写, 调用子类.原则上是 先从本类中找方法, 然后一层一层往上找.
你实际new出来的是Child,而不是Parent。简单的说明就是,从实际对象开始,一层一层往上找,找到的第一个就是要调用的方法。
Core Java 基本概念
你的子類重寫了父類的b()方法,因此子類調用的是自己重寫的方法,沒有被重寫的方法則繼承父類的
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(6)
public void a(){
b();
}
等效于
public void a(){
this.b();//你要清楚此处的this是指的是调用者!!!!
}
你在子类中重写了父类的方法。加@override有利于在编译期间就检查父类是否有该方法,所以如果是重写,最好写上@override。
创建子类的对象, 在调用方法时,
如果子类没有重写, 调用父类方法;
子类已重写, 调用子类.
原则上是 先从本类中找方法, 然后一层一层往上找.
你实际new出来的是Child,而不是Parent。简单的说明就是,从实际对象开始,一层一层往上找,找到的第一个就是要调用的方法。
Core Java 基本概念
你的子類重寫了父類的b()方法,因此子類調用的是自己重寫的方法,沒有被重寫的方法則繼承父類的