温馨提示
大家好我是Cbiltps,在我的博客中如果有难以理解的句意,难以用文字表达的重点,我会有配图。所以我的博客配图非常重要!!!
本节的知识点是从我的主体博客中抽出来的,主体博客其实就是起到一个拓展上下文,为所有的知识点体现逻辑顺序的作用。所以,我会把里面有讨论价值的东西单独拉出来,方便大家食用!
欢迎大家指正,加油!
正文开始
在之前的学习中已经遇见 super 和 this 两个关键字,博主根据自身所学及博客参考做出如下总结:
super: 可以理解为父类对象的引用(是依赖对象的),不能出现在静态环境(包括:static变量,static方法,static语句块)中(因为 static 不依赖对象)!
super(); //调用父类的构造方法
super.func(); //调用父类的普通方法
super.data; //调用父类的成员属性
this: 可以理解为指向本对象的指针,它代表当前对象名(在程序中易产生二义性之处,应使用 this 来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用 this 来指明成员变量名)!
this(); //调用本类中另一种形成的构造方法
注意点与区别总结:
super();
和this();
区别是:super();
从子类中调用父类的构造方法,this();
在同一类内调用其它方法super();
和this();
均需放在构造方法内第一行- 有时候
this
和super
不能同时出现在一个构造函数里面,因为 this 必然会调用其它的构造函数,其它的构造函数必然也会有 super 语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过 this();
和super();
都指的是对象,所以,均不可以在static环境
中使用(包括:static变量,static方法,static语句块)