超快速物件導向(Object-Oriented Programming,OOP)概念複習(VB.NET)

封裝


  由類別(Class)來封裝「資料成員、方法(Sub/Function)、屬性(Property)、建構式(New)」

  一、定義Class

Public Class Bruce

End Class


  二、含Namespace的Class定義

Namespace KK
Public Class Bruce
    
End Class
End Namespace


繼承


  BaseClass(父,基礎)        NewClass(子,衍生)
    NotInheritable          Inherits

  NotInheritable:不可被繼承。

Public NotInheritable Class Bruce

End Class


  Inherits:繼承BaseClass。

Public Class Bruce
Inherits Customer

End Class


繼承--覆寫


  BaseClass(父,基礎)        NewClass(子,衍生)
    Overridable            Overrides
                      Shadows
                      MyBase

  Overridable:方法可被覆寫。

Public Class Bruce
Public Overridable Function FunName(ByVal a As Integer) As Integer
  '...
End Function
End Class


  Overrides:覆寫BaseClas方法。

Public Class KingKong
Inherits Bruce
Public Overrides Function FunName(ByVal a As Integer) As Integer
    '...
End Function
End Class


  Shadows:建立同名新方法,非覆寫BaseClass版本。

Public Class KingKong
Inherits Bruce
Public Shadows Function FunName(ByVal a As Integer) As Integer
  '...
End Function
End Class


  MyBase:在NewClass引用BaseClass版本方法。

抽象


  MustInherit BaseClass(父,基礎)  NewClass(子,衍生)
    MustOverride            Overrides

  MustInherit:宣告為抽象類別。
  MustOverride:宣告抽象方法。

Public MustInherit Class Bruce
Public MustOverride Function FunName(ByVal a As Integer) As Integer
End Class


  Overrides:實作抽象方法。

Public Class KingKong
Inherits Bruce
Public Overrides Function FunName(ByVal a As Integer) As Integer
  '...
End Function
End Class


介面


  Interface(介面)          NewClass(子,衍生)
                      Implements

  Interface:宣告介面。(一般都會使用大寫I開頭)

Interface IBruce
Function FunName() As Integer

End Interface


  Implements:實作介面。

Public Class KingKong
Implements IBruce
Public Function FunName() As Integer Implements IBruce.FunName
  '...
End Function
End Class

2 則留言:

  1. 請問在宣告介面的這一部份
    我在vb 2008 express怎麼實作呢?
    是加入一個.vb的檔案 寫Interface
    還是在form裡面的程式碼直接寫interface呢?

    回覆刪除
  2. 加入一個Class(*.vb),
    1. 將Class中所有預設內容清除;
    2. 然後宣告介面(Ixxxx)及方法(function);
    3. 再繼承實作介面(implements Ixxxx);

    開發工具會自動帶出需要實作的介面。

    回覆刪除

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。