3.7.2、this和super的区别
No. | 区别 | this | super |
1 | 操作属性 | this.属性:表示调用本类中的属性,如果本类中的属性不存在,则从父类查找 | super.属性:表示调用父类中的属性 |
2 | 操作方法 | this.方法():表示调用本类中的方法,如果本类中的方法不存在,则从父类查找 | super.方法():表示调用父类中的方法 |
3 | 调用构造 | this()调用本类中的其他构造方法 | super():由子类调用父类中的构造方法 |
4 | 查找范围 | 先从子类中查找,如果没有从父类中查找 | 不查子类直接查找父类 |
5 | 特殊 | 当前对象 | - |
既然this和super都可以调用构造,那么这两者绝对不能同时出现,因为只要是调用构造,就必须将语句放在构造方法的首行,而且以后开发的时候建议明确的写出“this.方法”或者“super.方法()”,这样便于代码的维护。