其他分享
首页 > 其他分享> > 方法重写

方法重写

作者:互联网

方法重写

在继承中有时候子类中的方法并不能满足我们开发的要求 我们就可以使用方法重写来进行定义

对父类的方法进行一些修改就是重写父类方法

注意

重写的方法 必须有同样的方法名、方法参数、返回值类型

构造方法不能被重写

重载和重写的区别

重载:

同一个类中

方法名相同

参数列表不同

返回值类型不同

重写:

两个类

方法名相同

参数列表相同

返回值类型相同

 

我们可以通过一个注解来检查我们是否完成了重写的要求

@Override 是强制检查该方法是否重写方法

代码

父类

class vehicle{
private String brand;
private int price;
private String colour;

public String getBrand() {
return brand;
}

public void setBrand(String brand) {
this.brand = brand;
}

public int getPrice() {
return price;
}

public void setPrice(int price) {
this.price = price;
}

public String getColour() {
return colour;
}

public void setColour(String colour) {
this.colour = colour;
}

public vehicle(String brand, int price, String colour) {
this.brand = brand;
this.price = price;
this.colour = colour;
}

public vehicle() {
}

@Override
public String toString() {
return "vehicle{" +
"brand='" + brand + '\'' +
", price=" + price +
", colour='" + colour + '\'' +
'}';
}
public void rum(){
System.out.println("开始开车");
}
}

子类:

class carriage extends vehicle{
@Override
public void rum() {
System.out.println("出发");
}
}

测试类:

public static void main(String[] args) {
carriage carriage = new carriage();
carriage.setBrand("宝马");
carriage.setPrice(500000);
carriage.setColour("蓝色");
System.out.println(carriage);
carriage.rum();
}

运行结果:

 

 

 最后的运行结果是出发而并不是开始开车 

如果想让父类中的方法体执行可以使用super

super是访问父类的成员

子类

class carriage extends vehicle{
@Override
public void rum() {
super.rum();
System.out.println("出发");
}
}

运行结果

 

 

 最后的结果是两个一个是父类中的方法 一个是子类中的方法

 

标签:colour,String,重写,brand,price,carriage,方法,public
来源: https://www.cnblogs.com/aimz01/p/16383186.html