📜  Java-多态(1)

📅  最后修改于: 2023-12-03 15:16:02.154000             🧑  作者: Mango

Java-多态

多态是面向对象编程中的一个重要特性,它使得代码更加灵活和可维护。在Java中,多态主要是通过继承和接口实现的。

多态的定义

多态指的是同一个方法名,通过不同的参数类型或对象调用而表现出不同的行为,即一个方法调用可以有多种不同的表现形式。

多态的实现

Java中实现多态主要有两种方式:

  1. 继承

通过继承一个父类,子类可以继承父类的属性和方法,并且可以重写父类的方法,达到不同的表现形式。

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(); // 猫可以跳和走
    }
}
  1. 接口

通过实现一个公共接口,不同的类可以实现相同的方法,达到不同的表现形式。

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(); // 猫可以跳和走
    }
}
多态的优点
  1. 代码的可扩展性。通过继承和接口的方式,可以对代码进行扩展和重构,而不需要修改原有的代码。

  2. 代码的可维护性。通过多态的方式,可以使代码的结构更加简单清晰,容易维护。

  3. 代码的可复用性。通过继承和接口的方式,可以使代码的复用性更高。

多态的注意事项
  1. 多态只适用于方法,而不适用于属性。

  2. 父类的方法必须被重写,才能进行多态。

  3. 对象的调用类型和对象的实际类型可以不一样,即子类的对象可以指向父类的引用,但是父类的对象不能指向子类的引用。

总结

通过多态的方式,可以使代码更加灵活和可维护。Java中通过继承和接口的方式实现多态,具有代码的可扩展性、可维护性和可复用性等优点,但需要注意一些细节,才能更好的应用多态特性。