多态和重载都是面向对象编程的概念,用于处理同名的函数或方法,在不同的情况下做出不同的处理。即同一个函数或方法根据不同的对象类型,可以执行不同的行为。Animal类有一个名为makeSound的方法,Dog和Cat类都继承了Animal类,并重写了makeSound方法。在使用多态时,可以用父类的类型来声明一个对象,然后根据实际的对象类型调用方法。举个例子,假设有一个Calculator类,其中有一个名为add的方法,分别接受两个整数参数和两个浮点数参数。
多态和重载都是面向对象编程的概念,用于处理同名的函数或方法,在不同的情况下做出不同的处理。
多态(polymorphism)是指同一个名称的函数或方法在不同的对象上有不同的表现形式。即同一个函数或方法根据不同的对象类型,可以执行不同的行为。多态可以通过继承和接口实现。
举个例子,假设有一个Animal类和它的子类Dog和Cat。Animal类有一个名为makeSound的方法,Dog和Cat类都继承了Animal类,并重写了makeSound方法。在使用多态时,可以用父类的类型来声明一个对象,然后根据实际的对象类型调用方法。比如:
```java
Animal animal1 = new Dog();
animal1.makeSound(); // 输出"汪汪汪"
Animal animal2 = new Cat();
animal2.makeSound(); // 输出"喵喵喵"
```
重载(overloading)是指在同一个类中使用相同的方法名,但参数列表不同,以便根据不同的参数类型和个数来执行不同的操作。
举个例子,假设有一个Calculator类,其中有一个名为add的方法,分别接受两个整数参数和两个浮点数参数。代码如下:
```java
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
}
```
通过重载,可以根据不同的参数类型来执行不同的相加操作:
```java
Calculator calculator = new Calculator();
int result1 = calculator.add(1, 2); // 输出3
double result2 = calculator.add(1.5, 2.5); // 输出4.0
```
总结:
- 多态是指同一个名称的函数或方法在不同对象上有不同表现形式,根据对象类型执行不同的行为。
- 重载是指在同一个类中使用相同的方法名,但参数列表不同,根据不同的参数类型和个数执行不同的操作。