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

Java函数的继承和重写

发布时间:2023-06-08 09:31:07

Java中的继承和重写是Object-Oriented Programming(OOP)语言的基本特性之一。继承是指一个类可以从另一个类继承属性和方法,从而使得子类可以复用父类原有的代码。而重写是指子类可以重写父类中的方法,以便在子类中定制自己的行为。

一、继承

Java中的继承是通过关键字“extends”来实现的,子类使用“extends”关键字来继承父类,并且可以继承父类中的属性和方法。示例代码如下:

public class Person{
    private String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

public class Student extends Person{
    private String stuId;

    public Student(String name, String stuId) {
        super(name);
        this.stuId = stuId;
    }

    public String getStuId() {
        return stuId;
    }

    public void setStuId(String stuId) {
        this.stuId = stuId;
    }
}

在上面的例子中,Student类通过继承Person类,在Person类中定义的name属性和getName、setName方法可以直接在Student类中使用。在定义Student类时,使用了“super”关键字调用了父类的构造函数,从而初始化父类的属性“name”。

二、重写

对于继承了父类方法的子类,有时候需要对父类中的方法进行定制化修改,就需要使用到“重写”这个特性。在Java中,重写是指子类重写父类的方法,从而实现子类自己的行为,在方法名、参数个数及类型等方面与父类方法一致,只是在实现上做了修改。示例代码如下:

public class Animal{
    public void voice(){
        System.out.println("Animal makes a sound");
    }
}

public class Dog extends Animal{
    @Override
    public void voice(){
        System.out.println("Dog barks");
    }
}

在上述代码中,Dog类继承了Animal类,并重写了其方法“voice()”。在子类中,使用“@Override”注解,表示这个方法是对父类方法的重写,并且方法名、参数个数及类型与父类方法一致。在重写方法的实现中,Dog类实现了其自己的行为“Dog barks”,与父类Animal不同。

三、super关键字

在子类中使用super关键字可以调用父类中的方法和属性。在构造函数中,使用super可以调用父类的构造函数。示例代码如下:

public class Animal{
    private String name;

    public Animal(String name){
        this.name=name;
    }

    public String getName(){
        return name;
    }
}

public class Dog extends Animal{
    private int age;

    public Dog(String name,int age){
        super(name);
        this.age=age;
    }

    public int getAge(){
        return age;
    }

    public void show(){
        System.out.println("I am a dog,My name is "+super.getName()+",and I am "+this.age+" years old.");
    }
}

在上述代码中,在Dog类的show()方法中,使用“super.getName()”调用了父类Animal中的getName()方法,从而实现获取父类中的属性值。

总结:

继承是面向对象程序设计的一种基本概念,利用继承可以实现代码复用,避免重复劳动,提高代码可维护性,同时也能够减少代码的耦合度。而重写则允许子类对父类方法进行更改、扩展和改善,使子类更加贴近实际情况,从而提高开发效率。

在使用继承和重写时,要注意合理使用关键字“extends”和“@Override”以及关键字“super”,从而保证代码的稳定运行和可读性。