main package oop.demon01.demon05; public class Application { public static void main(String[] args) { Student student=new Student();(3) // student.test("秦疆");(1)先后 // student.test1();(2) } } -------------------------------- //父类 package oop.demon01.demon05; // 在Java中,所有的类,都默认直接或者间接继承Object //Person 人 : 类 public class Person /*extends Object*/{ public Person() { System.out.println("Person无参执行了"); } protected String name="kuangshen"; //私有的东西不能被继承(private) public void print(){ System.out.println("Person"); } } -------------------------------- //子类 package oop.demon01.demon05; // 学生 is 人 --- 子类(派生类) // 子类继承了父类,就会拥有父类的全部方法! public class Student extends Person { public Student() { /* Person无参执行了 Student无参执行了 */ //隐藏代码:默认调用了父类无参构造 super(); 如果是有参 要把参数写上 super();//调用父类的构造器,必须在子类的第一行 调用子类也是(this) System.out.println("Student无参执行了"); } private String name="qianjiang"; public void print(){ System.out.println("Student"); } public void test1(){ print();//Student this.print();//Student super.print();//Person (子类调用父类) } public void test(String name){ System.out.println(name);//秦疆 System.out.println(this.name);//qianjiang(this 当前这个类的) System.out.println(super.name);//kuangshen } }
super注意点: 1. super调用父类的构造方法,必须在构造方法的第一个 2. super 必须只能出现在子类方法或者构造方法中 3. super 和 this 不能同时调用构造方法 Vs this 代表的对象不同: this: 本身调用者这个对象 super: 代表父类对象的应用 前提 this: 没有继承也可以使用 super: 只能在继承条件才可以使用 构造方法 this(): 本类的构造 super(): 父类的构造!
学习内容源自视频:b站狂神说Java