📅  最后修改于: 2023-12-03 15:16:02.154000             🧑  作者: Mango
多态是面向对象编程中的一个重要特性,它使得代码更加灵活和可维护。在Java中,多态主要是通过继承和接口实现的。
多态指的是同一个方法名,通过不同的参数类型或对象调用而表现出不同的行为,即一个方法调用可以有多种不同的表现形式。
Java中实现多态主要有两种方式:
通过继承一个父类,子类可以继承父类的属性和方法,并且可以重写父类的方法,达到不同的表现形式。
public class Animal {
public void move() {
System.out.println("动物可以移动");
}
}
public class Dog extends Animal {
@Override
public void move() {
System.out.println("狗可以跑和走");
}
}
public class Cat extends Animal {
@Override
public void move() {
System.out.println("猫可以跳和走");
}
}
public class Test {
public static void main(String[] args) {
Animal animal = new Animal();
Animal dog = new Dog(); // Dog对象指向Animal类型的引用
Animal cat = new Cat(); // Cat对象指向Animal类型的引用
animal.move(); // 动物可以移动
dog.move(); // 狗可以跑和走
cat.move(); // 猫可以跳和走
}
}
通过实现一个公共接口,不同的类可以实现相同的方法,达到不同的表现形式。
public interface Animal {
void move();
}
public class Dog implements Animal {
@Override
public void move() {
System.out.println("狗可以跑和走");
}
}
public class Cat implements Animal {
@Override
public void move() {
System.out.println("猫可以跳和走");
}
}
public class Test {
public static void main(String[] args) {
Animal dog = new Dog();
Animal cat = new Cat();
dog.move(); // 狗可以跑和走
cat.move(); // 猫可以跳和走
}
}
代码的可扩展性。通过继承和接口的方式,可以对代码进行扩展和重构,而不需要修改原有的代码。
代码的可维护性。通过多态的方式,可以使代码的结构更加简单清晰,容易维护。
代码的可复用性。通过继承和接口的方式,可以使代码的复用性更高。
多态只适用于方法,而不适用于属性。
父类的方法必须被重写,才能进行多态。
对象的调用类型和对象的实际类型可以不一样,即子类的对象可以指向父类的引用,但是父类的对象不能指向子类的引用。
通过多态的方式,可以使代码更加灵活和可维护。Java中通过继承和接口的方式实现多态,具有代码的可扩展性、可维护性和可复用性等优点,但需要注意一些细节,才能更好的应用多态特性。