WEB开发网
开发学院手机开发Android 开发 Android的类别继承与委托之范例 阅读

Android的类别继承与委托之范例

 2010-06-01 15:53:00 来源:WEB开发网   
核心提示:类别继承的副作用继承和委托皆能达到对象再用之目的,各有所长各有所短,Android的类别继承与委托之范例,相辅相成才是完美的,如下述类别:Android的类别继承与委托之范例" src="http://www.cnmsdn.com/attached/201005/20100531180545_974

类别继承的副作用

继承和委托皆能达到对象再用之目的,各有所长各有所短,相辅相成才是完美的。如下述类别:

(图)高焕堂讲义之八:<a target=Android的类别继承与委托之范例" src="http://www.cnmsdn.com/attached/201005/20100531180545_97451.jpg" width="183" height="129" border="0" onload="return imgzoom(this,550);" style="cursor:pointer;" onclick="javascript:window.open(this.src);"/>

在New Collegiate字典上对「正方形」的定义是:

「正方形是一种4边等长的长方形」

所以使用继承如下:

(图)高焕堂讲义之八:<a target=Android的类别继承与委托之范例" src="http://www.cnmsdn.com/attached/201005/20100531180546_69211.jpg" width="179" height="282" border="0" onload="return imgzoom(this,550);" style="cursor:pointer;" onclick="javascript:window.open(this.src);"/>

然而,上述的实作继承却有些缺点,宜避免之。例如,Square从Rectangle继承了setLength()和setWidth()函数,但这两个函数对于Square而言是无意义且有害的。因之,上述的继承关系是不良的。至于如何改善上述的继承关系呢?可改用委托:

(图)高焕堂讲义之八:<a target=Android的类别继承与委托之范例" src="http://www.cnmsdn.com/attached/201005/20100531180547_32361.jpg" width="300" height="92" border="0" onload="return imgzoom(this,550);" style="cursor:pointer;" onclick="javascript:window.open(this.src);"/>

当Square之对象接到外界传来的area()讯息时,就委托Rectangle之对象代为处理。虽然委托会令程序复杂些,但勉强使用继承,后遗症将更大。因为副作用可能会延续到Rectangle的各子孙类别!

Tags:Android 类别 继承

编辑录入:coldstar [复制链接] [打 印]
赞助商链接