Java 继承与多态练习指南

在学习Java编程时,理解继承和多态是非常重要的概念。为了帮助你掌握这两个重要的面向对象编程(OOP)特性,我们将逐步进行一个练习。以下是我们将要遵循的步骤:

实现流程

步骤 说明
1 创建父类(基类)
2 创建子类(派生类),并继承父类
3 在子类中重写父类方法,展示多态性
4 创建一个测试类,使用父类和子类进行实例化
5 编写状态图和序列图,展示对象的状态变化和交互

步骤详解

1. 创建父类(基类)

首先,我们创建一个名为Animal的父类。这个类将定义一个基本的方法makeSound(),表示动物发出的声音。

// Animal.java
public class Animal {
    // 定义一个方法 makeSound
    public void makeSound() {
        System.out.println("Animal sound");
    }
}
  • Animal类包含了一个打印Animal sound的方法makeSound,它将在子类中重写。
2. 创建子类(派生类)

接下来,我们创建一个名为Dog的子类,该类将继承Animal类,并重写makeSound()方法。

// Dog.java
public class Dog extends Animal {
    // 重写父类的 makeSound 方法
    @Override
    public void makeSound() {
        System.out.println("Bark");
    }
}
  • Dog类使用extends关键字继承自Animal类,并重写了makeSound方法,使其输出Bark
3. 重写父类方法,展示多态性

我们再创建另一个子类Cat,同样继承Animal类,并重写makeSound()方法。

// Cat.java
public class Cat extends Animal {
    // 重写父类的 makeSound 方法
    @Override
    public void makeSound() {
        System.out.println("Meow");
    }
}
  • Cat类也继承自Animal类,并重写了makeSound方法,使其输出Meow
4. 创建一个测试类

现在我们创建一个名为TestPolymorphism的类,在其中测试我们创建的类。

// TestPolymorphism.java
public class TestPolymorphism {
    public static void main(String[] args) {
        // 声明父类引用指向子类对象
        Animal myDog = new Dog();
        Animal myCat = new Cat();

        // 调用子类重写的方法
        myDog.makeSound(); // 输出: Bark
        myCat.makeSound(); // 输出: Meow
    }
}
  • 我们在main方法中创建了Animal类型的引用,但是我们将它们指向了DogCat的实例,这展示了多态性。

状态图

下面是状态图,表示不同动物的状态变化:

stateDiagram
    [*] --> Animal
    Animal --> Dog
    Animal --> Cat
    Dog --> Bark
    Cat --> Meow

序列图

以下是表示方法调用的序列图:

sequenceDiagram
    participant main
    participant Dog
    participant Cat

    main->>Dog: makeSound()
    Dog-->>main: Bark

    main->>Cat: makeSound()
    Cat-->>main: Meow

结尾

通过以上步骤,你已经成功实现了Java中的继承与多态示例。在这个练习中,你学习了如何创建父类和子类,重写方法以展示多态,并在测试中使用父类引用指向子类对象。掌握这些基本概念后,你可以开始探索更复杂的OOP特性,比如抽象类和接口。

记住,继承可以帮助你重用代码,而多态则使得你的代码具有更大的灵活性和可扩展性。继续练习,深入理解这些概念,你将更加熟练地运用Java编程。祝你在编程的路上取得更大的进步!