Java中的方法重写(Override)和方法重载(Overload)是两种常见的方法定义方式。虽然它们的名字很相似,但它们具有不同的含义和使用场景。
方法重写是指在子类中重新定义父类中已有的方法,也就是说子类中的方法名称、参数列表和返回值类型与父类中的方法相同。子类可以通过重写方法来修改父类的定义,从而更好地满足子类自己的需求。
public class Animal { public void sound() { System.out.println("Animal makes sound"); } } public class Dog extends Animal { public void sound() { System.out.println("Dog barks"); } }
在上面的例子中,Dog类重写了Animal类中的sound()方法,并修改了实现内容。在程序中调用Dog类的sound()方法时,将输出“Dog barks”。
方法重载是指在一个类中定义多个同名的方法,但参数列表不同。这些不同的方法可以在同一程序中重复使用相同的名称来执行不同的任务。
public class Calculator { public int add(int a, int b) { return a + b; } public int add(int a, int b, int c) { return a + b + c; } public double add(double a, double b) { return a + b; } }
在上面的例子中,Calculator类中定义了三个同名的方法add(),但它们的参数列表不同。我们可以使用不同的参数来调用这些重载方法,而无需再为每种情况写一个新的方法。
总之,方法重写和方法重载是Java编程中很重要的概念。使用它们可以使代码更清晰、更简洁、更易于维护,并提高程序的效率和灵活性。