深入浅析java 中的多态性
更新时间:2023-12-06深入浅析Java中的多态性
什么是多态性?
在Java中,多态性是指同一个方法或者同一个接口,可以有不同的实现方式,即同一个方法或者接口适用于多种类型的对象,其表现形式为方法重载和方法重写。
方法重载
方法重载指的是在同一个类中,可以有多个相同名称的方法,但是它们的参数个数、类型或顺序不同。编译器会根据方法调用的参数自动匹配可用的方法,这就是方法的重载。
public class Demo { public void func(int a) { System.out.println("int: " + a); } public void func(double a) { System.out.println("double: " + a); } public static void main(String[] args) { Demo demo=new Demo(); demo.func(10); // int: 10 demo.func(10.0); // double: 10.0 } }
方法重写
方法重写指的是子类可以重新定义父类的同名方法,但是该方法的参数列表、返回类型和方法体必须与父类中的方法相同。编译器在调用对象的方法时,会根据对象的实际类型来调用相应的方法。
class Animal { public void shout() { System.out.println("动物叫"); } } class Dog extends Animal { public void shout() { System.out.println("汪汪汪"); } } class Cat extends Animal { public void shout() { System.out.println("喵喵喵"); } } public class Demo { public static void main(String[] args) { Animal animal=new Animal(); animal.shout(); // 动物叫 Dog dog=new Dog(); dog.shout(); // 汪汪汪 Cat cat=new Cat(); cat.shout(); // 喵喵喵 Animal animalDog=new Dog(); animalDog.shout(); // 汪汪汪 Animal animalCat=new Cat(); animalCat.shout(); // 喵喵喵 } }
多态性的优势
多态性的优势在于实现了代码的灵活性和可扩展性,可以更好地实现面向对象的封装和抽象。多态性可以使得程序的扩展更加容易,只需要增加新的子类并实现相应的方法,就可以在不改变原有代码的情况下实现新的功能。
总结
Java中的多态性指同一个方法或者同一个接口,可以有不同的实现方式,包括方法重载和方法重写。多态性实现了代码的灵活性和可扩展性,可以更好地实现面向对象的封装和抽象。使用多态性,可以在不改变原有代码的情况下实现新的功能。