了解Java中的方法重载和方法重写。
在Java中,方法重载(method overloading)和方法重写(method overriding)是两个重要的概念,用于实现多态性和代码复用。
方法重载是指在同一个类中,可以有多个方法具有相同的名称,但是参数列表不同。参数列表可以是参数的类型、个数或顺序的不同组合。在Java中,方法重载可以让我们用一个方法名来表示一组功能相似的方法,提高代码的可读性和可维护性。
方法重载的特点如下:
1.方法名必须相同,但是参数列表必须不同。
2.返回值可以相同也可以不同。
3.可以有不同的访问修饰符。
4.可以抛出不同的异常。
示例代码如下:
public class OverloadExample {
public void print(int num) {
System.out.println("int: " + num);
}
public void print(String str) {
System.out.println("String: " + str);
}
public void print(double num) {
System.out.println("double: " + num);
}
}
在上述代码中,print方法被重载了三次,分别接受一个整数、一个字符串和一个双精度浮点数作为参数。根据传入的参数类型,编译器会自动匹配调用对应的重载方法。
方法重写是指子类定义了一个与父类中方法签名(方法名和参数列表)完全相同的方法。通过方法重写,子类可以修改从父类继承而来的方法的实现细节。在Java中,方法重写是实现多态性的一种方式。
方法重写的特点如下:
1.方法名、参数列表和返回值类型必须与父类方法一致。
2.访问修饰符不能严格比父类方法的修饰符更严格。
3.子类方法不能抛出比父类方法声明更多的异常,但可以抛出更少或相同的异常。
示例代码如下:
public class Animal {
public void makeSound() {
System.out.println("Animal makes sound");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Cat meows");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog barks");
}
}
在上述代码中,Animal类有一个makeSound方法,而Cat和Dog类分别重写了makeSound方法。当调用makeSound方法时,根据对象的实际类型,在运行时会选择调用对应子类的重写方法。
总结:
方法重载和方法重写是Java中实现多态性和代码复用的重要机制。方法重载可以在同一个类中定义多个具有相同名称但参数列表不同的方法,提高了代码的可读性和可维护性。方法重写是子类对父类方法的重新实现,使得对象在运行时可以选择调用父类或子类的方法,增加了程序的灵活性。
