如何覆盖Java中的方法?

如果子类具有与其父类中的方法具有相同签名的方法,则它是重写方法。重写继承的方法允许子类为这些方法提供专门的实现。覆盖方法具有与其覆盖的方法相同的名称,数量和类型,并且返回值相同。

覆盖方法可以有不同的throws子句,只要它不指定throws覆盖方法中该子句未指定的任何类型。同样,覆盖方法的访问说明符可以允许比覆盖方法更多但不更少的访问。

例如,protected可以创建超类中的方法,public但不能这样做private。子类不能覆盖final在超类中声明的方法。子类必须重写abstract超类中声明的方法,否则子类本身必须是抽象的。

package org.nhooo.example.fundamental;

public class Car {

    private String type;

    private String brand;

    private String model;

    private int numberOfSeat;

    public Car() {

    }

    public Car(String type, String brand, String model) {

        this.type = type;

        this.brand = brand;

        this.model = model;

    }

    public String getType() {

        return type;

    }

    public void setType(String type) {

        this.type = type;

    }

    public String getBrand() {

        return brand;

    }

    public void setBrand(String brand) {

        this.brand = brand;

    }

    public String getModel() {

        return model;

    }

    public void setModel(String model) {

        this.model = model;

    }

    public int getNumberOfSeat() {

        return numberOfSeat;

    }

    public void setNumberOfSeat(int numberOfSeat) {

        this.numberOfSeat = numberOfSeat;

    }

    public String getCarInfo() {

        return"Type: " + type

                + "; Brand: " + brand

                + "; Model: " + model;

    }

}

在 Truck 类中,我们重写 getCarInfo ()方法以提供有关 Truck 对象的更多信息。我们还可以向覆盖方法添加@override 注解。

package org.nhooo.example.fundamental;

public class Truck extends Car {

    private int loadCapacity;

    public Truck() {

    }

    public Truck(String type, String brand, String model) {

        super(type, brand, model);

    }

    public int getLoadCapacity() {

        return loadCapacity;

    }

    public void setLoadCapacity(int loadCapacity) {

        this.loadCapacity = loadCapacity;

    }

    @Override

    public String getCarInfo() {

        return "Type: " + getType()

                + "; Brand: " + getBrand()

                + "; Model: " + getModel()

                + "; Load capacity: " + getLoadCapacity();

    }

}

                       

以上是 如何覆盖Java中的方法? 的全部内容, 来源链接: utcz.com/z/326346.html

回到顶部