继承是面向对象编程(OOP)的四大基本特性之一,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。通过继承,子类可以重用父类的代码,同时还可以添加自己特有的属性和方法。
继承的主要特点包括:
代码重用:子类可以继承父类的非私有属性和方法,避免了代码的重复编写。
继承层次结构:可以形成多层继承关系,即一个类可以继承另一个类,而后者又可以继承其他类,形成继承链。
多态性:子类可以覆盖(override)父类的方法,使得子类对象在调用该方法时表现出不同的行为。
下面是一个简单的Java继承示例:
java
// 父类:动物(Animal)
class Animal {
// 父类属性
private String name;
// 父类构造方法
public Animal(String name) {
this.name = name;
}
// 父类方法
public void makeSound() {
System.out.println("The animal makes a sound.");
}
}
// 子类:狗(Dog),继承自Animal类
class Dog extends Animal {
// 子类特有的属性
private String breed;
// 子类构造方法
public Dog(String name, String breed) {
super(name); // 调用父类构造方法,初始化从父类继承的属性
this.breed = breed;
}
// 子类特有的方法
public void bark() {
System.out.println("The dog barks.");
}
// 重写父类方法
@Override
public void makeSound() {
System.out.println("The dog barks loudly.");
}
}
// 主类(Main)
public class Main {
public static void main(String[] args) {
// 创建Dog对象
Dog myDog = new Dog("Buddy", "Labrador");
// 调用从父类继承的方法
myDog.makeSound();
// 调用子类特有的方法
myDog.bark();
}
}
在这个例子中,Animal 类是父类,它有一个属性 name 和一个方法 makeSound()。Dog 类是子类,它继承了 Animal 类的所有非私有属性和方法,并添加了一个特有的属性 breed 和一个特有的方法 bark()。此外,Dog 类还重写了 makeSound() 方法,以提供狗特有的声音。
在 Main 类的 main 方法中,我们创建了一个 Dog 对象,并调用了它从父类继承的 makeSound() 方法和子类特有的 bark() 方法。这个例子展示了Java中继承的基本用法,包括代码重用、方法重写和子类特有功能的添加。