• 目录

super关键字

阅读量: 138 编辑

super关键字

一、super关键字介绍

  • 在Java类中使用super来引用父类的成分

  • super可用于访问父类中定义的属性

  • super可用于调用父类中定义的成员方法

  • super可用于在子类构造器中调用父类的构造器

    • 在子类的构造器中可使用语句 super(argument_list) 调用父类的构造器

    • 如果子类的构造器中没有显式地调用父类构造器,则系统默认调用父类无参数的构造器

    • 如果子类构造器中既未显式调用父类构造器,而父类中又没有无参的构造器,则编译出错

二、代码实战

代码的详细解读,可以参考视频教程

父类:Person.java

package com.qicong.gj.c05;

/**
 * User: 祁大聪
 */
public class Person { //alt + enter

    public String name;

    public Integer age;

    private Integer money;

    public Person(){
        this("sanNi",22);//调用其他的构造器
    }

    public Person(String name, Integer age){
        this.name = name;
        this.age = age;
    }

    public void printNameAndAge(){
        System.out.println("name = " + name + " , age = " + age);
    }

    public void dance(){
        System.out.println("我会跳舞");
    }

    public void sing(String song){
        System.out.println("我会唱歌");
    }

    private void  getMoney(){
        System.out.println("取现金");
    }
}

子类:Girl.java

package com.qicong.gj.c05;

/**
 * User: 祁大聪
 */
public class Girl extends Person {

    @Override
    public void dance() {
        System.out.println("女孩子喜欢跳民族舞");
    }

    public void myDance(){
        super.printNameAndAge();//调用父类的函数
        dance();
    }

//    public Girl(String name, Integer age){
//        super(name, age); //调用父类的构造器
//    }

    public static void main(String[] args) {
        Girl g = new Girl();
        g.name = "三妮";
        g.age = 22;
        g.myDance();
    }
}
  • 目录