📜  Java中的继承和构造函数(1)

📅  最后修改于: 2023-12-03 15:32:02.057000             🧑  作者: Mango

Java中的继承和构造函数

Java是一种面向对象的编程语言,因此它支持继承方式。继承是一种代码重用的方式,可帮助减少重复的代码并简化代码结构。

继承的基本概念

在Java中,一个类可以继承另一个类的特性。被继承的类称为父类,继承它的类称为子类。子类会自动获得父类中的所有公共和受保护的方法和属性,并且子类还可以添加自己的方法和属性。

以下是一个简单的继承示例:

public class Animal {
    private String name;

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

    public void speak() {
        System.out.println("I am an animal.");
    }
}

public class Dog extends Animal {
    public Dog(String name) {
        super(name);
    }

    public void bark() {
        System.out.println("Woof, woof!");
    }
}

在这个示例中,Dog类继承了Animal类。Dog类中增加了自己的方法bark(),并通过super()方法调用父类的构造函数以获得从父类继承的name属性。

父类构造函数

在Java中,子类构造函数会自动调用其父类的构造函数,以确保父类的属性被正确地初始化。如果子类构造函数未显式调用父类构造函数,则Java编译器将自动调用父类的默认构造函数。如果父类没有默认构造函数,则必须在子类构造函数中显式地调用父类的构造函数。

以下是一个示例:

public class Animal {
    private String name;

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

    public void speak() {
        System.out.println("I am an animal.");
    }
}

public class Dog extends Animal {
    public Dog(String name) {
        super(name); // 显式调用父类构造函数
    }

    public void bark() {
        System.out.println("Woof, woof!");
    }
}

在这个示例中,Dog类的构造函数显式地调用父类构造函数。请注意,此示例中的Animal类没有默认构造函数,因此必须通过super()方法调用Animal类的构造函数。

总结

继承是Java中代码重用的一种方式。子类继承了父类的属性和方法,并可以添加自己的属性和方法。在子类构造函数中,必须显式地调用父类的构造函数以确保父类的属性被正确地初始化。