java中类的多态含义和实现
时间: 2024-06-13 12:05:55 浏览: 135
Java中的多态是指同一类型的对象,在不同情况下会表现出不同的行为。它是面向对象编程中的一个重要特性,可以提高代码的可扩展性和可维护性。Java中实现多态的方式主要有两种:继承和接口。
1. 继承实现多态
继承是Java中实现多态的一种方式。子类可以继承父类的属性和方法,并且可以重写父类的方法。当子类对象调用重写的方法时,会优先调用子类中的方法,而不是父类中的方法。这种行为被称为动态方法调度。
下面是一个简单的例子,演示了如何使用继承实现多态:
```java
class Animal {
public void makeSound() {
System.out.println("Animal is making a sound");
}
}
class Dog extends Animal {
public void makeSound() {
System.out.println("Dog is barking");
}
}
class Cat extends Animal {
public void makeSound() {
System.out.println("Cat is meowing");
}
}
public class Main {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.makeSound(); // 输出:Dog is barking
animal2.makeSound(); // 输出:Cat is meowing
}
}
```
在上面的例子中,Animal是一个父类,它有一个makeSound()方法。Dog和Cat是Animal的子类,它们都重写了makeSound()方法。在main()方法中,我们创建了一个Dog对象和一个Cat对象,并将它们赋值给Animal类型的变量。当我们调用这些变量的makeSound()方法时,会分别调用Dog和Cat中的makeSound()方法。
2. 接口实现多态
接口也是Java中实现多态的一种方式。接口定义了一组方法的签名,但没有实现这些方法。类可以实现一个或多个接口,并实现接口中定义的方法。当一个类实现了一个接口时,它必须实现接口中定义的所有方法。这样,我们就可以在不同的类中使用相同的接口,从而实现多态。
下面是一个简单的例子,演示了如何使用接口实现多态:
```java
interface Shape {
public void draw();
}
class Circle implements Shape {
public void draw() {
System.out.println("Drawing a circle");
}
}
class Rectangle implements Shape {
public void draw() {
System.out.println("Drawing a rectangle");
}
}
public class Main {
public static void main(String[] args) {
Shape shape1 = new Circle();
Shape shape2 = new Rectangle();
shape1.draw(); // 输出:Drawing a circle
shape2.draw(); // 输出:Drawing a rectangle
}
}
```
在上面的例子中,Shape是一个接口,它定义了一个draw()方法。Circle和Rectangle是Shape接口的实现类,它们都实现了draw()方法。在main()方法中,我们创建了一个Circle对象和一个Rectangle对象,并将它们赋值给Shape类型的变量。当我们调用这些变量的draw()方法时,会分别调用Circle和Rectangle中的draw()方法。
阅读全文