打印本文 打印本文 关闭窗口 关闭窗口
Henry的VB.NET之旅(八)—接口
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1807  更新时间:2009/4/23 19:01:35  文章录入:mintao  责任编辑:mintao
属性的定义,但并没有实现;实现代码写在CHenry类中。你可以按我刚才说的约定的思路来理解,IHenry接口其实就是一个合约的提纲,CHenry是该合约的一个操作版本,只要在CHenry中实现了接口IHenry定义的所有的方法,不管是怎么实现的,有没有加入新的方法,都可认为CHenry是支持IHenry接口的一个实现类。”

“一个实现类?也就是说接口可以有多个实现喽?”我不解地问。

“当然,我刚才说过,接口其实就是一个对象的外观,在VB.NET中有很多很重要的接口,定义了很多种类型的对象,比如说你所熟悉的Windows Form的控件,它们的基类大部分是Component类,而Component类就是IComponent接口的一个实现类,IComponent类还有其它三个实现类,那就是:Control、HttpApplication和MarshalByValueComponent类,分别完成不同的功能,但它们都要实现IComponent接口所定义的方法与属性,且参数定义与返回类型都要与接口定义时的签名一致。换个角度来看这个问题,我们如何创建一个组件,且让系统都识别,靠的就是对接口的实现。要成为组件的类必须实现 IComponent 接口,并提供不需要参数或只需一个类型为 IContainer 的参数的基本构造函数就行了。”

“哦,我明白了,通过接口,我们可以定义下某种对象的基本外观,然后可以自由地进行实现与扩展,却不涉及对原型的直接修改。太棒了!”我一下子高兴了起来。

“是呀,在VB.NET中可以显式定义接口,使得接口编程也成为很棒的编程方式了。刚才所说的,在不同的类中实现同一个接口,不就是一种用接口实现的多态性吗?另外,在类和结构中也可以实现多个接口。”大李写了如下的代码给我看:

 

Interface IOne

     Sub SubOne()

End Interface

Interface ITwo

     Sub SubTwo()

End Interface

Class CHenry

     Implements IOne

     Implements ITwo

     Sub SubOne() Implements IOne.SubOne

        ''''实现代码

     End Sub

     Sub SubTwo() Implements ITwo.SubTwo

        ''''实现代码

     End Sub

End Class

 

“真有意思,”我饶有兴致地看着代码,“也就是说CHenry就具备了IOne与ITwo所定义的外观特点了。”

我一下子想起了抽象类的定义,不由好奇地说:“如果把接口看成一个基类,那么用于实现的类不就可以看成是它的一个派生类了?这是不是就是接口继承呀?”

 

---------------------------------------------------------------

声明:本文版权与解释权归韩睿所有,如需转载,请保留完整的内容及此声明。

QQ: 18349592

E-Mail: henry7685@hotmail.com

请访问本人专栏:http://www.csdn.net/develop/author/netauthor/Latitude/

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口