怎样理解继承及多态性,举例说明
时间: 2024-03-20 11:42:45 浏览: 53
一个实例告诉你什么是封装继承和多态
继承是面向对象编程中的一个重要概念,它允许一个类(子类)继承另一个类(父类)的属性和方法。子类可以使用父类中定义的公共属性和方法,同时也可以添加自己的属性和方法。这种机制使得代码的重用和扩展变得更加容易。
多态性是指一个对象可以在不同的上下文环境中表现出不同的行为。在面向对象编程中,多态性是通过继承和接口实现的。一个父类的方法可以被子类所重写,使得在实例化子类对象时,这个方法的行为表现出多态性。
举个例子,假设我们有一个 Animal 类,它有一个 makeSound() 方法,可以输出动物的叫声。现在我们有两个子类 Dog 和 Cat,它们都继承自 Animal 类,但是它们的叫声是不同的。我们可以在 Dog 和 Cat 类中重写 makeSound() 方法,使得它们在调用 makeSound() 方法时表现出多态性,输出不同的叫声。如下所示:
```
class Animal {
public void makeSound() {
System.out.println("The animal makes a sound");
}
}
class Dog extends Animal {
public void makeSound() {
System.out.println("The dog barks");
}
}
class Cat extends Animal {
public void makeSound() {
System.out.println("The cat meows");
}
}
public class Main {
public static void main(String[] args) {
Animal myAnimal = new Animal(); // 创建一个 Animal 对象
Animal myDog = new Dog(); // 创建一个 Dog 对象
Animal myCat = new Cat(); // 创建一个 Cat 对象
myAnimal.makeSound(); // 输出 "The animal makes a sound"
myDog.makeSound(); // 输出 "The dog barks"
myCat.makeSound(); // 输出 "The cat meows"
}
}
```
在这个例子中,myAnimal、myDog 和 myCat 都是 Animal 类型的对象,但是它们调用 makeSound() 方法时却表现出不同的行为,这就是多态性的体现。
阅读全文