1.什么是super?
super是一个关键字,全部小写。
2.怎么学?super和this对比着学习。
this:
- this能出现在
实例方法
和构造方法
中。 - this的语法是:“
this.
”、“this()
” - this
不能
使用在静态方法
中。 - this. 大部分情况下是可以省略的。
- this.什么时候不能省略呢? 在区分局部变量和实例变量的时候不能省略。
eg.
public void setName(String name){
this.name = name;
}
this()
在构造方法里,只能出现在构造方法
第一行,通过当前的构造方法去调用“本类”中其它的构造方法。
目的是:代码复用。
2021.07.07补充:(感谢 “迷~麟” 指出错误)
-
“
this.
”可以引用本类的属性或方法 -
“
this
” 可以作为函数的返回值。
eg.
//重新JList渲染类(部分代码)
private rolecolor = red;
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (isSelected) {
setBackground(this.rowcolor);
setFont(getFont().deriveFont((float) (getFont().getSize() + 2)));
}
return this;//返回当前JList对象
}
super:
- super能出现在
实例方法
和构造方法
中。 - super的语法是:“
super.
”、“super()
”
2.1 super()
2.1.1 在恰当的时间使用:super(实际参数列表);
2.1.2 注意:在构造方法执行过程中一连串调用了父类的构造方法,父类的构造方法又继续向下调用它的父类的构造方法,但是实际上对象只 创建了一个
。
2.1.3 “super(实参)”到底是干啥的?
super(实参)的作用是:初始化当前对象的父类型特征
。
并不是创建新对象。实际上对象只创建了1个。
2.1.4 super关键字代表什么呀?
super关键字代表的就是“当前对象
”的那部分父类型特征。
eg.
public class SuperTest03{
public static void main(String[] args){
CreditAccount ca1 = new CreditAccount();
System.out.println(ca1.getActno() + "," + ca1.getBalance() + "," + ca1.getCredit());
CreditAccount ca2 =<