Java是一门面向对象的编程语言,多态和重写是其中非常重要的两个概念。
多态是指不同的对象可以用相同的接口进行操作,这样可以提高代码的灵活性和通用性,减少了代码的重复性。Java中实现多态主要靠两个机制:继承和接口。
// 父类Animal public class Animal { public void move() { System.out.println("动物在移动"); } } // 子类Dog public class Dog extends Animal { public void move() { System.out.println("狗在跑"); } public void bark() { System.out.println("狗在叫"); } } // 子类Cat public class Cat extends Animal { public void move() { System.out.println("猫在走"); } public void scratch() { System.out.println("猫在抓"); } } // 多态的应用 public class PolymorphismDemo { public static void main(String[] args) { Animal animal1 = new Dog(); Animal animal2 = new Cat(); animal1.move(); animal2.move(); } }
以上代码中, Animal是一个父类,Dog和Cat是它的子类,它们都有自己的move方法。在PolymorphismDemo中,我们用Animal类型的变量去引用Dog和Cat类型的对象,最终调用它们的move方法,这就是多态。
重写是指子类中重写了父类的某个方法,这样在调用该方法时将调用子类的方法而不是父类的方法。
// 父类Animal public class Animal { public void move() { System.out.println("动物在移动"); } } // 子类Dog public class Dog extends Animal { public void move() { System.out.println("狗在跑"); } } // 重写的应用 public class OverrideDemo { public static void main(String[] args) { Animal animal = new Dog(); animal.move(); } }
以上代码中,我们在Dog类中重写了Animal类的move方法,最终调用move方法时将会调用Dog类中的方法而不是Animal类中的方法。