说明
super===父
this===当前
-
使用super时,首先要继承父类,其次是在子类里面才能使用super。
-
继承父类后,运行子类时会同时调用父类的构造方法,如果要显性调用父类的构造方法必须在子类的第一行调用。
-
单使用super()表示调用父类构造方法,单使用this()表示调用本身的构造方法。
-
父类具有有参的构造方法时,并且没有显性无参构造方法,那么子类要使用时必须直接调用父类的有参构造方法,
代码解释
//父类 //Java中,所行的类,都默认直接或者网接继承object//Person 人 :父类 public class Person{ //属性 protected string name = "老贝"; private string emal = "23411"; //方法 publiC void Text02(){ System.out.println("老贝"); } //如果方法是private那么子类无论如何都无法继承这个方法 private void Text03(){ System.out.println("老贝"); } }
//子类 //子类维承了父类,就会拥有父类的全部方法! public class student extends Person { //属性 private string name = "小红"; //方法 public void Text02(){ System.out.println("小红"); } public void test01(String name){ System.out.println(name);//实际参数的值 System.out.println(this.name);//当前name的值 System.out.print1n(super.name);//父类name的值 } public void test1(){ print(); //小红 this.print(); //小红 super.print();//老贝 }
//使用 public class Application { public static void main(string[] args) { Student student = new Student(); student.test01("小明");//输出:小明,小红,老贝 student.text02();输出:小红,小红,老贝 } }
注意点:
-
super调用父类的构造方法,必须在构造方法的第一个
-
super 必须只能出现在子类的方法或者构造方法中!
-
super和this不能同时调用构造方法!
-
父类里的属性或方法存在修饰符:private(私有的),则子类无法调用
super和this的区别
-
代表对象不同
-
this:本身调用者这个对象
-
super:代表父类对象的引用
-
-
前提不同
-
this:没有继承也能使用
-
super:必须继承才能使用
-
-
构造方法
-
this:本类的构造
-
super:父类的构造
-