1、this和super都代表了什么
this:代表当前对象的引用,谁来调用我,我就代表谁
super:代表当前对象父类的引用
2、this和super的使用区别
a、调用成员变量
this.成员变量 调用本类的成员变量,也可以调用父类的成员变量
super.成员变量 调用父类的成员变量。
b、调用构造方法
this(...) 调用本类的构造方法
super(...) 调用父类类符构造方法‘
扫描二维码关注公众号,回复:
655387 查看本文章
c、调用成员方法
this.成员方法 调用本类的成员方法,也可以调用父类符成员方法
super.成员方法 调用父类的成员方法
3、继承中构造方法的关系
子类中所有的构造方法默认都会访问父类中空参的构造方法
为什么?
因为之类会继承父类中的数据,可能还会使用父类的数据,所以,之类初始化之前,一定要先完成父类数据的初始化。
其实,每一个构造方法的第一条语句默认都是:super()。
4、继承中构造方法的注意事项
super(...)或this(...)必须出现在构造方法的第一条语句上。两者是不能同时出现在同一段代码块的。
* 父类没有无参构造方法,子类怎么办?
* super解决
* this解决
class Demo6_Extends { public static void main(String[] args) { Son s1 = new Son(); System.out.println(s1.getName() + "..." + s1.getAge()); System.out.println("--------------------"); Son s2 = new Son("张三",23); System.out.println(s2.getName() + "..." + s2.getAge()); } } /* * A:案例演示 * 父类没有无参构造方法,子类怎么办? * super解决 * this解决 * B:注意事项 * super(⋯)或者this(⋯.)必须出现在构造方法的第一条语句上 */ class Father { private String name; //姓名 private int age; //年龄 public Father() { //空参构造 System.out.println("Father 空参构造"); } public Father(String name,int age) { //有参构造 this.name = name; this.age = age; System.out.println("Father 有参构造"); } public void setName(String name) { //设置姓名 this.name = name; } public String getName() { //获取姓名 return name; } public void setAge(int age) { //设置年龄 this.age = age; } public int getAge() { //获取年龄 return age; } } class Son extends Father { public Son() { //空参构造 this("王五",25); //本类中的构造方法 //super("李四",24); //调用父类中的构造方法 System.out.println("Son 空参构造"); } public Son(String name,int age) { //有参构造 super(name,age); System.out.println("Son 有参构造"); } }