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

封裝


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

  一、定義Class
1Public Class Bruce
2 
3End Class


  二、含Namespace的Class定義
1Namespace KK
2Public Class Bruce
3    
4End Class
5End Namespace


繼承


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

  NotInheritable:不可被繼承。
1Public NotInheritable Class Bruce
2 
3End Class


  Inherits:繼承BaseClass。
1Public Class Bruce
2 Inherits Customer
3 
4End Class


繼承--覆寫


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

  Overridable:方法可被覆寫。
1Public Class Bruce
2 Public Overridable Function FunName(ByVal a As Integer) As Integer
3  '...
4 End Function
5End Class


  Overrides:覆寫BaseClas方法。
1Public Class KingKong
2 Inherits Bruce
3 Public Overrides Function FunName(ByVal a As Integer) As Integer
4    '...
5 End Function
6End Class


  Shadows:建立同名新方法,非覆寫BaseClass版本。
1Public Class KingKong
2 Inherits Bruce
3 Public Shadows Function FunName(ByVal a As Integer) As Integer
4  '...
5 End Function
6End Class


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

抽象


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

  MustInherit:宣告為抽象類別。
  MustOverride:宣告抽象方法。
1Public MustInherit Class Bruce
2 Public MustOverride Function FunName(ByVal a As Integer) As Integer
3End Class


  Overrides:實作抽象方法。
1Public Class KingKong
2 Inherits Bruce
3 Public Overrides Function FunName(ByVal a As Integer) As Integer
4  '...
5 End Function
6End Class


介面


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

  Interface:宣告介面。(一般都會使用大寫I開頭)
1Interface IBruce
2 Function FunName() As Integer
3 
4End Interface


  Implements:實作介面。
1Public Class KingKong
2 Implements IBruce
3 Public Function FunName() As Integer Implements IBruce.FunName
4  '...
5 End Function
6End Class

2 則留言:

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

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

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

    回覆刪除

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