欢迎访问宙启技术站
智能推送

Java中调用父类的函数的方式

发布时间:2023-06-19 22:47:35

Java中调用父类的函数主要有三种方式:super关键字、this关键字和直接调用。

一、使用super调用父类方法

super关键字可以用于访问父类的方法和成员变量。使用super调用父类的方法的语法格式是:super.父类方法名称(参数列表)。

其中,super关键字必须是在子类方法的 条语句中使用,并且只能用于调用父类已经被子类重写的方法。例如:

class Animal {
    void move() {
        System.out.println("动物可以移动");
    }
}

class Dog extends Animal {
    void move() {
        super.move(); // 调用父类方法
       System.out.println("狗可以跑和走");
    }
}

在这个例子中,Dog类继承自Animal类,并重写了父类的move方法。在Dog类中的move方法中,使用super.move()调用了父类的move方法,输出了“动物可以移动”的内容。

二、使用this调用父类方法

this关键字也可以用于访问父类的方法和成员变量。使用this调用父类的方法的语法格式和使用super相同,即:this.父类方法名称(参数列表)。

与super关键字不同的是,this关键字不能用于调用已经被子类重写的父类方法。例如:

class Animal {
    void move() {
        System.out.println("动物可以移动");
    }
}

class Dog extends Animal {
    void run() {
        this.move(); // 错误!不能调用已经被子类重写的方法
        System.out.println("狗可以跑");
    }
}

在这个例子中,Dog类中的run方法中使用了this.move()调用父类的move方法,但是由于move方法已经被子类重写了,使用this关键字是错误的。

三、直接调用父类方法

直接调用父类的方法的语法格式是:父类名称.父类方法名称(参数列表)。例如:

class Animal {
    void move() {
        System.out.println("动物可以移动");
    }
}

class Dog extends Animal {
    void run() {
        Animal animal = new Animal();
        animal.move(); // 调用父类的move方法
        System.out.println("狗可以跑");
    }
}

在这个例子中,Dog类中的run方法中创建了一个Animal类的实例对象,然后使用animal.move()调用了父类的move方法。输出了“动物可以移动”的内容。

总结:在Java中调用父类的函数的方式有三种:使用super关键字,使用this关键字和直接调用父类方法。每种方式都有各自的使用场景,需要根据实际情况选择适合的方法进行调用。