我爱Aspx >> VB.Net >> VB.Net中文教程(3) 继承与封装性VB.Net中文教程(3) 继承与封装性
承与封装性(Encapsulation)
1.1 公用与私有数据
前面已介绍「封藏性」(Encapsulation) 之观念。即是﹕类别内所定义之资料成员﹐只限于程序成员才能存取之。现在所面临之问题为﹕子类别能否直接存取父类别之资料呢﹖就如同﹕儿女从父母亲继承了财产﹐但能否取用或卖掉继承而来的财产呢﹖如果可以﹐显然违背了「封藏性」之理想。如果不行﹐显然带给程序员莫大之限制。理论上﹐百分之百的封藏性最为完美﹔但应用上﹐若给予子类别若干优待﹐能提高程序之弹性及效率。为了解决此鱼与熊掌不可兼得之困境﹐VB提供三种选择﹕
(1) Public ──指定某些数据为公用的﹐任何程序皆可直接取用之﹔此时并无任何封藏作用。
(2) Protected ──指定某些资料为家族公用﹐亦即只有子孙类别内之程序可取用﹐非子孙类别之程序必须呼叫家族内之程序代为存取。
(3) Private ──指定某资料为类别私有﹐只限于该类别之程序才可取用。子类别之程序也必须呼叫父类别之程序代为存取﹐此时具百分之百封藏性。
先前介绍「封装性」基本概念时,您已经认识了Public和Private的用意了,至于Protected则配合继承来使用,于是在此特别强调它。
由于VB向现实妥协﹐开了方便之门﹐无百分之百封藏性﹔所以有些人认为 VB并非完美的 OOP语言。您认为如何呢﹖请看个程序﹕
@#ex01.bas
Imports System.ComponentModel
Imports System.Drawing
Imports System.WinForms
@#---------------------------------------------------------
Class Person
Private name As String
【我对这篇文章有话说?】
VB.Net中文教程(4) 类别继承(Inh..[05-20]
VB.Net中文教程(5)程序多重定义[05-20]
VB.Net中文教程(6) 母子对象关系[05-20]
VB.Net中文教程(7) Me参考值[05-20]
VB.Net中文教程(8) 对象(Object)..[05-20]
VB.Net中文教程(9) 重新定义(Ove..[05-20]
VB.Net中文教程(11) Prototype样..[05-20]
VB.Net中文教程(12) 共享成员(Sh..[05-20]
VB.Net中文教程(13) Whole-Part关..[05-20]
走近VB.Net(二) 再谈函数调用[05-20]
VB.Net中文教程(4) 类别继承(Inh..[05-20]
VB.Net中文教程(5)程序多重定义[05-20]
VB.Net中文教程(6) 母子对象关系[05-20]
VB.Net中文教程(7) Me参考值[05-20]
VB.Net中文教程(8) 对象(Object)..[05-20]
VB.Net中文教程(9) 重新定义(Ove..[05-20]
VB.Net中文教程(11) Prototype样..[05-20]
VB.Net中文教程(12) 共享成员(Sh..[05-20]
VB.Net中文教程(13) Whole-Part关..[05-20]
走近VB.Net(二) 再谈函数调用[05-20]