多态的分类和抽象的描述

在静态类型语言中,继承是多态的基础,多态是继承的目的。 

 

通用多态:

      参数多态:利用泛型编程,是发散式的,是静态绑定的,让相同的实现代码应用于不同的场合,看重的是算法的普适性

      包含多态(子类型多态):利用OOP,是收敛式的,是动态绑定的,让不同的实现代码应用于相同的场合,看重的是接口与实现的分离度

      通用多态的目的:在保证必要的类型安全的前提下,突破编译期间过于严苛的类型限制

      对于既是静态类型语言又是静态语言、既支持OOP又支持GP的C++、Java和C#而言,多态机制是保证代码的灵活性、可维护性和可重用性的终极武器。

 

 


特殊多态:

      一种是强制多态(coercion polymorphism),即一种类型的变量在作为参数传递时隐式转换成另一种类型,比如一个整型变量可以匹配浮点型变量的函数参数。

 

      另一种就是重载多态(overloading polymorphism),它允许不同的函数或方法拥有相同的名字。

 


 

 

关于抽象的若干描述:

 

具体类型创造对象,抽象类型类型创造类型

 

C#和Java中抽象类型包括接口(interface)和抽象类(abstract class),这在C++中没有明显区别

 

可以抽象数据,也可以抽象类型(利用多态抽象)

 

抽象类型的两个特征:需要继承和无法实例化,这是特征而不是本质,本质上为“类型服务”

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值