super 与 this 在继承父类时的区别
super
- 调用父类的构造器的好处 :分工明确,父类属性由父类初始化,子类的属性由子类初始化;
- 当子类中有和父类中的成员(属性和方法)重名时,为了访问父类的成员,必须通过super。
- 如果子类中有和父类中的成员(属性和方法)没有重名,使用super、this、直接访问是一样的效果!
- super的访问不限于直接父类,如果爷爷类和本类中有同名的成员,也可以使用super去访问爷爷类的成员; 如果多个基类(上级类)中都有同名的成员,使用super访问遵循就近原则。A->B->C,当然也需要遵守访问权限的相关规则
this
java虚拟机会给每个对象分配 this,代表当前对象。