override和overload的区别
时间: 2023-04-28 12:05:41 浏览: 167
override 和 overload 是面向对象编程中的两个术语。
override 指的是子类重写父类的方法,在子类中实现父类的方法,而在父类中该方法的定义被忽略。
overload 指的是在同一类中多个函数名相同但是参数不同的情况。
简单来说就是 override 是重写,overload是重载。
相关问题
override 和 overload 区别
重写(Overriding)和重载(Overloading)是Java多态性的不同表现。重载发生在一个类中,方法名相同,但各自的参数不同,称为重载。重写发生在子类与父类之间,要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常。重载对返回类型没有特殊的要求,不能根据返回类型进行区分。<em>1</em><em>2</em><em>3</em>
#### 引用[.reference_title]
- *1* [Java 重写(Override)与重载(Overload)](https://blog.csdn.net/weixin_30847271/article/details/101852544)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item]
- *2* [【软件构造】override和overload区别](https://blog.csdn.net/weixin_52966993/article/details/124827752)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item]
- *3* [重载(Overload)与重写(Override)的区别](https://blog.csdn.net/weixin_52754604/article/details/122968798)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item]
[ .reference_list ]
override 和 overload
`override` 和 `overload` 是两个不同的概念。
`override` 是在子类中重写父类中已有的方法,以实现更具体的功能。在子类中,使用 `override` 关键字来标识该方法是重写父类中的方法。被重写的方法必须具有相同的名称、参数列表和返回类型。例如:
```
class Animal {
public virtual void MakeSound() {
Console.WriteLine("Animal makes a sound");
}
}
class Cat : Animal {
public override void MakeSound() {
Console.WriteLine("Cat makes a meow");
}
}
```
在上面的例子中,`Cat` 类重写了 `Animal` 类中的 `MakeSound` 方法。
`overload` 是指在同一个类中定义多个具有相同名称但参数列表不同的方法。这样做的目的是为了提高代码的可读性和可重用性。例如:
```
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;
}
}
```
在上面的例子中,`Calculator` 类定义了两个名为 `Add` 的方法,但参数列表不同。这样做的目的是为了让用户可以根据需要调用适当的方法。
阅读全文