经验之谈VB.NETProtected方法

VB.NET继承还是比较常用的,于是我研究了一下VB.NET Protected方法,在这里拿出来和大家分享一下,希望对大家有用。当我们通过继承来创建一个子类的时候,新类就可以从父类中得到了所有的Public(公共)和Friend(友)方法、属性和变量。

创新互联专注于蓬江企业网站建设,响应式网站建设,商城网站建设。蓬江网站建设公司,为蓬江等地区提供建站服务。全流程按需求定制网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

#T#如果你在父类中声明一个Private(私有)的方法、属性和变量,那么在新的子类中就不能得到这个类的方法、属性和变量。当然也有个例外,就是New方法。构造函数方法必须在每一个子类中重新编写。这个内容我们在本教程的后面将深入讨论。举个例子,我们可能从LineItem类中重写Amount方法,具体如下:

 
 
  1. Public Function Amount() As Single   
  2. Return CalcAmount   
  3. End Function  
  4.  
  5. Private Function CalcAmount() As Single  
  6. Return fQuantity * fPrice  
  7. End Function   

从这个改变中,我们可以看到公共的方法Amount使用了Private方法来工作。当我们利用LineItem来创建子类ServiceLine的时候,任何的ServiceLine对象都有一个Amount方法,因为它在基类中声明为Public。另外一方面,这个CalcAmount方法被声明为Private,所以所有的ServiceLine类和任何的客户代码都不能访问它。这里值得一提的是,既然Amount方法存在于LineItem类中,它就可以访问CalcAmount方法即使在ServiceLine类中不能看到这个方法。

举个例子,在我们的客户代码中我们可以这样做:

 
 
  1. Protected Sub Button1_Click(ByVal sender As Object, _  
  2. ByVal e As System.EventArgs)  
  3. Dim sl As ServiceLine  
  4.  
  5. sl = New ServiceLine()  
  6. sl.Item = delivery sl.Price = 20 
  7. sl.DateProvided = Now 
  8. MsgBox(sl.Amount, MsgBoxStyle.Information, amount)  
  9. End Sub  

结果显示在一个消息框中,这样就阐明了CalcAmount方法被成功调用了,虽然客户代码和ServiceLine代码没有直接调用它。

VB.NET Protected方法

有时,Public和Private并不能满足我们的要求。如果我们想声明一些变量或者方法为Private,那么这些变量和方法就只能在我们的类中使用;但是当我们声明一些变量和方法为Public或者Friend,那么这些变量和方法就可以在子类和客户代码中使用。但是,有时有声明一些变量和方法,让它们在子类中有效,而在客户代码中不能用,该怎么办呢?这里可以使用VB.NET Protected方法辖域。当变量或者方法被声明为Protected的时候,对于任何类外部的代码将不能调用,但是还是可以被由它继承而来的子类调用。举个VB.NET Protected方法例子吧,如下:

 
 
  1. Public Class ParentClass  
  2. Protected TheValue As Integer  
  3. End Class  
  4.  
  5. Public Class SubClass  
  6. Inherits ParentClass  
  7.  
  8. Public Function GetValue() As Integer  
  9. Return TheValue  
  10. End Function  
  11. End Class  

在上面的代码中我们有一个父类,它有一个Protected成员变量TheValue。这个变量在任何的客户代码中都不能被调用。但是这个变量对于任何的子类都是有效的因为它继承了这个父类。在这个例子中,SubClass有一个Public方法返回了Protected变量的数值,但是这个变量对于类的外部任何客户代码都是无效的。

名称栏目:经验之谈VB.NETProtected方法
网站地址:http://www.shufengxianlan.com/qtweb/news5/294105.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联