Java是一种强类型语言,对于同一个对象,在不同的情况下可以表现出不同的行为,这就是Java的多态特性。Java的多态是通过继承和接口实现的。
重写是指子类覆盖父类的同名方法,实现子类自己的方法,但必须保持方法的参数列表、方法名和返回值类型都与父类方法相同。重写可以让基类中的方法对子类进行实现,可以根据情况修改行为。如果重写方法被封闭,则必须标记为“final”。
//代码示例 public class Animal { public void move() { System.out.println("动物可以移动"); } } public class Dog extends Animal { public void move() { System.out.println("狗可以跑和走"); } public void bark() { System.out.println("狗可以吠叫"); } } public class TestDog { public static void main(String args[]) { Animal a = new Animal(); // Animal 对象 Animal b = new Dog(); // Dog 对象 a.move();// 执行 Animal类的方法 b.move();//执行 Dog 类的方法 ((Dog) b).bark(); // 执行 Dog 类的方法 } }
重载是指在一个类中定义多个同名函数,但是函数参数列表不同。在重载过程中,编译器会根据传递给函数的参数数量和类型选择正确的函数。不同的重载函数可以用参数类型、参数数量和参数顺序等不同属性来区分。调用时编译器会根据函数参数类型选出相应的函数,方法重载必须要求参数类型不同、参数数量不同或者顺序不同。
//代码示例 public class Calculate { public int sum(int a, int b) { return a + b; } public int sum(int a, int b, int c) { return a + b + c; } public double sum(double a, double b) { return a + b; } } public class TestCalculate { public static void main(String[] args) { Calculate cal = new Calculate(); int sum1 = cal.sum(1, 2); int sum2 = cal.sum(3, 4, 5); double sum3 = cal.sum(1.5, 2.7); System.out.println("sum1结果:" + sum1); System.out.println("sum2结果:" + sum2); System.out.println("sum3结果:" + sum3); } }
总结:Java的多态、重写和重载是Java语言面向对象编程中的一些基础的知识点。多态是Java一个强大的特性,让我们可以在不同的对象中调用不同的方法。重写和重载可以让类中的方法更灵活地适应不同的需求,从而提高代码效率和灵活性。