java.super详解
package Demo.oop.APP.Demo03; //demo3包的启动器 //此启动器用于继承 public class application { public static void main(String[] args) { Student student = new Student(); student.test1(); } }
main方法,启动器
package Demo.oop.APP.Demo03; //java中,所有的类都直接或间接继承object(类) //Java中,只用单继承,没有多继承,即只有有一个父类,但可以有多个子类 public class Person { protected String name="帅哥"; public Person(){ System.out.println("Person的无参构造被调用了"); } public void print(){ System.out.println("Person"); } }
父类,被student继承
package Demo.oop.APP.Demo03; //学生类,派生类,子类 //学生是人 -- Student is a Person //子类继承了父类,就会拥有父类全部的方法 //extends 扩展的意思 public class Student extends Person{ //当main方法调用构造器时,类里只用无参构造时,先调用父类,在调用子类,两个构造器都会被调用 public Student(){ System.out.println("Student无参构造被调用了"); } public void print(){ System.out.println("Student"); } public void test1(){ print();//此类的方法输出Student this.print();//此类的方法输出Student super.print();//父类的方法输出Person } }
子类,继承父类
super注意点:
1.super调用父类的构造方法,必须在构造方法的第一个
2.super只能出现在子类的方法和构造方法中
3.super和this不能同时调用在构造方法中(两个必须有一个放在第一个,其中必有一个报错)
Vs this
代表对象不同:
this:本身调用者这个对象
super:父类的使用调用对象的应用
前提:
this:没有继承就可以使用
super:必须要继承才可以使用
构造方法:
this:本类的构造
super:父类的构造