淘先锋技术网

首页 1 2 3 4 5 6 7

Java语言多态,指的是同一类对象,在不同的情况下可以表现出不同的行为特征。

其实多态的实现机制是利用了Java里面的三大特性:封装、继承和重写。在Java中,我们可以利用继承关系去实现多态,也可以利用接口去实现多态。

// 使用继承实现多态
class Animal {
public void Sound() {
System.out.println("Animal makes sound");
}
}
class Dog extends Animal {
public void Sound() {
System.out.println("Dog barks");
}
}
class Cat extends Animal {
public void Sound() {
System.out.println("Cat meows");
}
}
Animal animal = new Animal();
animal.Sound(); // Output: Animal makes sound
Animal dog = new Dog();
dog.Sound(); // Output: Dog barks
Animal cat = new Cat();
cat.Sound(); // Output: Cat meows

通过上面的例子可以看出,虽然我们实例化的是Animal类,但是通过向上转型,我们可以让该实例访问与其实际类型不匹配的方法,从而实现了多态

// 使用接口实现多态
interface Shape {
void draw();
}
class Circle implements Shape {
public void draw() {
System.out.println("Circle drawn");
}
}
class Rectangle implements Shape {
public void draw() {
System.out.println("Rectangle drawn");
}
}
Shape s1 = new Circle();
s1.draw(); // Output: Circle drawn
Shape s2 = new Rectangle();
s2.draw(); // Output: Rectangle drawn

通过接口实现多态,同样可以实现不同子类对象的相同调用方式。

多态的重要用途是增加代码的灵活性,使得代码更加可扩展、可维护,减少重复性代码。