Java super关键字

Java super关键字

Java super关键字

介绍

在Java中,super关键字是一个非常重要的关键字,它主要用于在子类中访问父类的成员变量和方法。本文将详细介绍Java中super关键字的用法、作用和示例代码。

super关键字的用途

在面向对象的编程中,继承是一种重要的概念。子类可以继承父类的属性和方法,通过super关键字,子类可以访问父类的成员变量和方法。使用super关键字可以实现以下功能:

  • 子类调用父类的构造方法:在子类的构造方法中使用super关键字来调用父类的构造方法,以便对父类的属性进行初始化。
  • 子类访问父类的成员变量和方法:通过super关键字可以访问父类中被隐藏的成员变量或方法。
  • 子类重写父类方法时的调用:当子类重写了父类的方法,如果想在子类中调用父类的方法,可以使用super关键字。

super关键字的用法

在构造方法中调用父类构造方法

在子类的构造方法中,通过使用super关键字可以调用父类的构造方法。使用super关键字调用父类构造方法的一般形式如下:

super();
Java

在调用父类构造方法时,需要注意一下几点:
1. super关键字必须是子类构造方法中的第一条语句;
2. 如果子类的构造方法没有显式调用父类的构造方法,编译器会自动添加super()调用。

我们来看一个示例,演示在构造方法中通过super关键字调用父类的构造方法:

class Animal {
    private String name;

    public Animal(String name) {
        this.name = name;
    }

    public void eat() {
        System.out.println("Animal " + name + " is eating.");
    }
}

class Dog extends Animal {
    public Dog(String name) {
        super(name);
    }

    public void bark() {
        System.out.println("Dog is barking.");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog("Tom");
        dog.eat(); // 调用父类的eat方法
        dog.bark();
    }
}
Java

输出为:

Animal Tom is eating.
Dog is barking.
Java

访问父类的成员变量和方法

通过super关键字,子类可以访问父类中声明的成员变量和成员方法。当子类和父类存在同名的成员变量或成员方法时,使用super关键字可以访问父类的成员。使用super关键字访问父类的成员变量和成员方法的一般形式如下:

super.成员变量
super.成员方法
Java

我们来看一个示例,演示通过super关键字访问父类的成员变量和成员方法:

class Animal {
    protected String name;

    public Animal(String name) {
        this.name = name;
    }

    public void eat() {
        System.out.println("Animal " + name + " is eating.");
    }
}

class Dog extends Animal {
    private int age;

    public Dog(String name, int age) {
        super(name);
        this.age = age;
    }

    public void printInfo() {
        System.out.println("Dog name: " + super.name);
        super.eat();
        System.out.println("Dog age: " + this.age);
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog("Tom", 3);
        dog.printInfo();
    }
}
Java

输出为:

Dog name: Tom
Animal Tom is eating.
Dog age: 3
Java

子类重写父类方法时的调用

当子类重写了父类的方法,如果想在子类中调用父类的方法,可以使用super关键字。使用super关键字调用父类被重写的方法的一般形式如下:

super.重写方法名(参数列表)
Java

我们来看一个示例,演示子类重写父类方法并通过super关键字调用父类方法:

class Animal {
    protected String name;

    public Animal(String name) {
        this.name = name;
    }

    public void eat() {
        System.out.println("Animal " + name + " is eating.");
    }
}

class Dog extends Animal {
    public Dog(String name) {
        super(name);
    }

    @Override
    public void eat() {
        super.eat();
        System.out.println("Dog is eating biscuits.");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog("Tom");
        dog.eat();
    }
}
Java

输出为:

Animal Tom is eating.
Dog is eating biscuits.
Java

小结

super关键字是Java中一个重要的关键字,通过super关键字,子类可以访问父类的成员变量和方法,调用父类的构造方法,以及在子类中调用父类的重写方法。掌握super关键字的用法和作用,对于设计合理的面向对象程序具有重要意义。

在本文中,我详细介绍了在构造方法中调用父类构造方法、访问父类的成员变量和方法、子类重写父类方法时的调用等super关键字的用法,并给出了相应的示例代码和运行结果。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册