--- title: Java SE笔记: Super关键字 date: 2016-08-08 21:10:00 updated: 2016-08-08 21:10:00 description: "Super关键字" categories: [个人笔记] tags: [Java, Java SE笔记] --- ## Super关键字 > 1. super不是引用类型,super中存储的不是内存地址,super指向的不是父类对象. > 2. super代表的是当前子类对象中的父类型特征。 > - 通过子类的构造方法去调用父类的构造方法,作用是:给当前子类对象中的父类型特征赋值。 > - super(...);调用了父类中的构造方法,但是并不会创建父类对象。`所以,java中,构造方法执行不一定创建对象!!!` > 3. 什么时候使用super? > - 子类和父类中都有某个数据,例如,子类和父类中都有name这个属性。 > - 如果要再子类中访问父类中的name属性,需要使用super. > 4. super可以用在什么地方? > - super可以用在成员方法中.不能用在静态方法中. > - super可以用在构造方法中. ![](/images/javase_22.jpg) ### super关键字用在构造方法中: - 语法:super(实参); - 作用:通过子类的构造方法去调用父类的构造方法. - 语法规则:一个构造方法第一行如果没有this(...);也没有显示的去调用super(...); - 系统会默认调用super(); **注意:** super(...);的调用只能放在构造方法的第一行. - super(....)和this(....)不能共存。(因为this(...)也只能放在构造方法的第一行,所以两者肯定不能共存!) - 通过子类的构造方法去调用父类的构造方法,作用是:给当前子类对象中的父类型特征赋值。 - super(...);调用了父类中的构造方法,但是并不会创建父类对象。 - 在java语言中只要是创建java对象,那么Object中的无参数构造方法一定会执行。