Java教程

方法重写

本文主要是介绍方法重写,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

方法重写

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

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

注意

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

构造方法不能被重写

重载和重写的区别

重载:

同一个类中

方法名相同

参数列表不同

返回值类型不同

重写:

两个类

方法名相同

参数列表相同

返回值类型相同

 

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

@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("出发");
    }
}

运行结果

 

 

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

 

这篇关于方法重写的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!