如何覆盖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