Java——Super关键字

来源:互联网 发布:net程序员是干嘛的 编辑:程序博客网 时间:2024/06/05 11:43

在前面的博文中,已经讲解过this关键字,下面来讲解super关键字,两者的使用基本相同。

Java——This关键字

super基本具有三种用途:
1,调用父类的属性;
2,调用父类的普通方法;
3,调用父类的构造方法;

一,调用父类的属性

class Person{    String name = "李四";    int age;}class Student extends Person{    String name = "张三";    void print() {        //调用父类的属性        System.out.println("父类的属性:" + super.name);        //调用本类的属性        System.out.println("子类的属性:" + this.name);    }}public class Superkey{    public static void main(String[] args) {        new Student().print();    }}

二,调用父类的普通方法

class Person{    public void print() {        System.out.println("父类的方法");    }}class Student extends Person{    public void print(){        //调用父类的普通方法        super.print();        System.out.println("子类的方法");    }}public class Superkey{    public static void main(String[] args) {        new Student().print();    }}

三,调用父类的构造方法

class Person {    private String name;    private int age;    public Person(String name,int age){        this.setName(name);        this.setAge(age);    }    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;    }    public String getInfo(){        return "姓名:" + this.name + "年龄:" + this.age;    }}class Student extends Person{    String school;    public Student(String name,int age,String school) {        super(name,age);        this.setSchool(school);    }    public void setSchool(String school) {        this.school = school;    }    public String getSchool() {        return school;    }    public String getInfo() {        return super.getInfo() + "学校:" + this.getSchool();    }}public class Superkey{    public static void main(String[] args) {        Student student = new Student("张三",30,"清华大学");        System.out.println(student.getInfo());    }}

与this用法一样,super调用构造方法也必须放在子类构造方法的首行。

this与super的区别:

这里写图片描述

原创粉丝点击