Java重写有参构造

在Java中,构造函数是一个特殊的方法,用于创建和初始化对象。在某些情况下,我们可能需要在子类中创建自己的构造函数,并重写父类的有参构造函数。本文将介绍Java中重写有参构造函数的概念,并提供相应的代码示例。

什么是构造函数

构造函数是一种特殊的方法,用于在创建对象时进行初始化。它的名称与类名相同,并且没有返回类型。构造函数可以是无参构造函数(没有参数)或有参构造函数(带有参数)。

在Java中,每个类都有一个默认的无参构造函数,如果没有在类中显式定义构造函数,则会使用默认的无参构造函数。

重写构造函数

在继承关系中,子类继承了父类的所有属性和方法。当子类需要初始化自己的属性时,可以重写父类的构造函数。

为了重写一个有参构造函数,子类的构造函数必须具有相同的参数列表。然后,可以使用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 String breed;
    
    public Dog(String name, String breed) {
        super(name);
        this.breed = breed;
    }
    
    public String getBreed() {
        return breed;
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog("Bobby", "Labrador");
        System.out.println("Name: " + dog.getName());
        System.out.println("Breed: " + dog.getBreed());
    }
}

在上面的示例中,Animal类有一个有参构造函数,用于初始化name属性。Dog类继承自Animal类,并重写了父类的有参构造函数。在Dog类的构造函数中,首先调用父类的构造函数super(name),然后初始化自己的属性breed

Main类的main方法中,创建了一个Dog对象,并通过调用getNamegetBreed方法获取其属性值。输出结果为:

Name: Bobby
Breed: Labrador

总结

重写有参构造函数是在子类中初始化自己的属性的一种常见方式。通过使用super关键字来调用父类的构造函数,并传递参数给它,子类可以在构造函数中完成自己的属性初始化。

本文提供了一个简单的示例代码,演示了如何重写有参构造函数。希望对你理解Java中构造函数的重写有所帮助。请随意实践和尝试在你的程序中使用构造函数的重写。