- 实例域&隐式参数&显式参数介绍
实例域:对象中的数据
emp.raiseSalary(5);
在该栗子中,emp是隐式参数,5是显式参数
隐式参数:不出现在方法声明中,是方法调用的目标或接收者
显式参数:出现在方法声明中
this:
-
调用隐式参数 eg: this.age;
-
调用该类的其他构造器 eg:单参构造调用无参构造,减少重复代码
super:
- 调用超类的方法 eg:super.update();
- 调用超类的构造器 构造子类的时候先调用父类的构造器
在构造子类的时候(写子类构造器的时候),必须先构造父类(调用父类构造器)。如果父类是有参构造,则先在子类构造器的首行super(参数1,参数2,...)
只有当父类只有无参构造的时候,首行的super()才能忽略不写
Question:构造器中调用其他构造器,无论是super还是this,都需要写在首行,如果子类构造器首行没有写调用超类的无参构造(可以忽略不写),而写了this(),那么会怎么操作呢?
Answer:super和this不能同时出现,但是构造子类的前提必须是先构造父类
具体看代码时:
-
出现super()或者this()时,这是在调用父类的构造方法或者本类的其他构造方法
-
出现super.某方法名时,就是调用超类(当前类的父类)里的该方法
-
出现this.变量名、this.方法名时,就是在调用本类的变量或者方法,当方法中的变量与类中的变量名字重复的时候,需要用this来区分到底用的是方法中的局部变量还是类中的变量