c语言编程笔录

首页 >   > 笔记大全

笔记大全

深入浅析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中的多态性指同一个方法或者同一个接口,可以有不同的实现方式,包括方法重载和方法重写。多态性实现了代码的灵活性和可扩展性,可以更好地实现面向对象的封装和抽象。使用多态性,可以在不改变原有代码的情况下实现新的功能。