多态的分类和抽象的描述

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

 

通用多态:

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

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

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

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

 
 

 


特殊多态:

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

 

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

 


 

 

关于抽象的若干描述:

 

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

 

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

 

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

 

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

 

你可能感兴趣的:(java,C#,oop,语言,interface,overloading)