Java 面向对象多态
时间: 2024-08-17 15:02:08 浏览: 51
Java中的面向对象多态主要是通过继承和接口机制来实现的。当一个子类继承自一个父类,并覆盖了父类中的一些方法,我们可以在父类类型的引用上动态地调用这些子类的方法,这就是多态。这种特性让程序能够根据不同对象的实际类型来调用相应的方法,提高了代码的灵活性和复用性。
- **继承与重写**:子类可以继承父类的所有属性和方法,然后在其内部添加或修改特定的行为。如果父类有一个方法,子类可以选择重写这个方法并提供自己的实现。
- **接口多态**:Java还支持接口多态,即一个类实现多个接口,每个接口都有其对应的方法。同样,在一个集合里存储实现了相同接口的对象时,我们可以统一操作这些对象,而无需关心它们的具体类型。
**应用示例**:
```java
class Animal {
void makeSound() { System.out.println("动物叫"); }
}
class Dog extends Animal {
@Override
void makeSound() { System.out.println("狗汪汪"); }
}
public class Main {
public static void main(String[] args) {
Animal animal = new Dog(); // 动物引用指向Dog实例
animal.makeSound(); // 输出 "狗汪汪",体现了多态
}
}
相关问题
java面向对象多态
Java是一种面向对象的编程语言,它支持封装、继承和多态等特性。封装是指将数据和方法封装在一个类中,以保护数据的安全性和完整性。继承是指子类可以继承父类的属性和方法,从而实现代码的复用和扩展。多态是指同一种方法可以在不同的对象上产生不同的行为,提高了代码的灵活性和可扩展性。这些特性使得Java成为一种强大的面向对象编程语言,被广泛应用于各种领域。
java面向对象多态例题
当然,我可以给你介绍一个Java面向对象多态的例题。
假设我们有一个动物类(Animal),它有一个抽象方法叫做"makeSound",用于发出声音。然后我们有两个子类,分别是狗类(Dog)和猫类(Cat),它们都继承自动物类。
在狗类中,我们重写了"makeSound"方法,让狗发出"汪汪"的声音;在猫类中,我们也重写了"makeSound"方法,让猫发出"喵喵"的声音。
现在,我们可以创建一个动物数组,数组中既可以存放狗对象,也可以存放猫对象。通过调用数组中每个元素的"makeSound"方法,我们可以实现多态性。
下面是示例代码:
```java
abstract class Animal {
public abstract void makeSound();
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("汪汪");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("喵喵");
}
}
public class Main {
public static void main(String[] args) {
Animal[] animals = new Animal[2];
animals[0] = new Dog();
animals[1] = new Cat();
for (Animal animal : animals) {
animal.makeSound();
}
}
}
```
运行以上代码,输出结果为:
```
汪汪
喵喵
```
这个例子展示了多态性的特点,通过将不同的子类对象存储在父类数组中,我们可以通过父类引用调用子类的方法,实现了不同对象的不同行为。