【面向对象】多态的四种形式(重载、改写、多态变量、泛型)

本文深入解析了多态在编程中的四种主要形式:重载、改写、多态变量和泛型。通过实例展示了每种形式的特点和应用场景,帮助读者理解多态性的核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多态可以分为重载、改写、多态变量、泛型四种形式。

1、 重载(Overload)
是在一个类里面,方法名字相同,而参数(个数或者类型)不同。

通俗来讲,就是两个函数名相同而类型签名不同,他们之间构成重载关系。
但是要注意的是:返回类型可以相同也可以不同,即返回类型不能作为重载函数的区分。
示例代码:

A、public void function (**int a**) {};
B、public void function (**int a,int b**) {};
C、public void function(**string a**) {};

A与B因为参数的个数不同而构成重载,A和C因为参数的类型不同而构成重载。

2、改写(Override/覆写/重写)
重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。

通俗来讲,就是在层次关系中低层次对高层次中相同类型签名的函数进行重新定义。
示例代码:

Class Parent{public int function(int x){return x;}  
}
Class Child extends Parent{public int function(int x){return 100000*x;}
}

Child类对parent类的function()函数进行了改写。

3、 多态变量
指可以引用多种对象类型的变量。这种变量在程序执行过程可以包含不同类型的数值。对于动态类型语言,所有的变量都可能是多态的。对于静态类型语言,多态变量则是替换原则的具体表现。

通俗来讲,就是一个变量可以在不同时期具有不同的类型。
示例代码:
动态类型语言(以python为例):
A =10
A = ‘你好’#、A由原来的数值类型变成了字符串类型
静态类型语言(以Java的向上转型为例)

Class parent{}
Class child extends parent{}
Parent p = new child();

4、 泛型
泛型本质是指类型参数化。意思是允许在定义类、接口、方法时使用类型形参当使用时指定具体类型,所有使用该泛型参数的地方都被统一化,保证类型一致。

通俗来讲,就是声明一个模板,创建一个通用的工具。
示例代码:

template <typename T> 
inline T const& Max (T const& a, T const& b) { return a < b ? b:a; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值