super关键字——Java面向对象基础(15)

一、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(***)需要在当前类的构造函数的第一行,否则会报错。

原文地址:https://www.cnblogs.com/Unlimited-Rain/p/12489175.html