当前位置: 首页 生活资讯

多态和重载的区别(多态和重载的区别并举例)

时间:2023-07-31 作者: 小编 阅读量: 1 栏目名: 生活资讯 文档下载

多态和重载都是面向对象编程的概念,用于处理同名的函数或方法,在不同的情况下做出不同的处理。即同一个函数或方法根据不同的对象类型,可以执行不同的行为。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

```

总结:

- 多态是指同一个名称的函数或方法在不同对象上有不同表现形式,根据对象类型执行不同的行为。

- 重载是指在同一个类中使用相同的方法名,但参数列表不同,根据不同的参数类型和个数执行不同的操作。