一、super
1.super指代父类
2.super.***引用父类中的属性
3.super.***(***)引用父类中的方法
4.super(***)使用父类中的构造方法
public class Father{ int money=500; public Father(){ System.out.println("父类的构造方法"); } public void fatherDo(){ System.out.println("父类的方法"); } }
public class Son extends Father{ int money=300; public Son(){ super();//调用父类的构造方法 System.out.println("子类的构造方法"); } public void sonDo(){ super.fatherDo();//使用父类的方法 System.out.println("父类的属性:"+super.money);//调用父类的属性 } }
5.需要注意的是,使用父类的构造方法必须要在子类构造方法的第一行
6.还需要注意的是,子类默认调用父类的无参构造。倘若父类只写了有参构造,而没有写无参,并且子类中没有手工调用有参构造或者调用了无参构造就会报错。
二、super与this的区别
1.super指代父类,this指代当前类(调用语法相同)
2.同样的地方是,super(***)与this(***)需要在当前类的构造函数的第一行,否则会报错。