C#物件導向的基本概念 (Basic C# OOP Concept) 系列二

來源:互聯網
上載者:User

標籤:

6.封裝

      封裝就是對外部類隱藏成員或變數。我已經說過房子的保安僅僅被限制在房子的入口處,不需要知道屋內發生了什麼。房主對保安隱藏了屋內所發生的任何事,以便更安全。隱藏和限制就被稱為封裝。

      例如我們有兩個類,一個是”Houseclass”另一個是”houseSecurityClass”。

我們可以看到所有的成員都包裹在公開的類houseSecurityClass裡,所以Houseclass類的對象能夠訪問 houseSecurityClass裡的任何成員。但是Houseclass有2個成員,一個public一個private。private類不能夠被外部的類所訪問。

 1 public class houseSecurityClass 2     { 3         public int noofSecurity; 4         public String SecurityName = String.Empty; 5     } 6  7     public class Houseclass 8     { 9         private int noofLockerinHosue = 2;10         public string OwnerName = String.Empty;11     }
7.抽象化

      抽象就是顯示和分享一些共同的資訊給使用者。接著討論屋子的例子。屋子裡有僕人,能夠進入任何房間,做清潔和其他的事情。房主可以給僕人所有或者部分進入臥室的許可權。我們可以看出,程式中private的成員和方法都是僕人所沒有的許可權,而public的成員和方法都是僕人所擁有的許可權。

 1 public class HouseServerntClass 2     { 3          4         private int SaftyLoackerKeyNo = 10001; 5         public String roomCleanInstructions = "Clean All rooms"; 6  7             private void saftyNos() 8             { 9                 Console.WriteLine("My SaftyLoackerKeyNo is" + SaftyLoackerKeyNo);10             }11 12         public void roomCleanInstruction()13         {14              Console.WriteLine(roomCleanInstructions);15         }16 17     }
8.繼承

      繼承就是為了代碼的重用。在protected internal存取修飾詞章節我們已經看到繼承的例子。繼承就是在衍生類別中能夠訪問父類的所有公開的方法和變數等。

單層次繼承--一個衍生類別只繼承一個父類。

 1 public class baseClass 2     { 3         private void privateMethod() 4         { 5             Console.WriteLine("private Method"); 6         } 7  8         public void publicMethod() 9         {10             Console.WriteLine("This Method Shared");11         }12     }13     public class DerivedClass : baseClass14     {15         static void Main(string[] args)16         {17             DerivedClass obj = new DerivedClass();18             obj.publicMethod();19             //obj.privateMethod(); //This will be error as private method can not be accessed in Derived Class20         }21 22     }

 

注意:有時候大家可能不清楚什麼是基類,什麼是衍生類別。基類就是超級類,衍生類別就是繼承了基類。

下面就是一個繼承的例子,基類GuestVist,衍生類別HouseOwnerClass。衍生類別HouseOwnerClass繼承自GuestVisit類。

 1 HouseOwnerClass.Here HouseOwnerClass class inherits the base class of GuestVist 2 class GuestVist 3     { 4         public void Guestwelcomemessage() 5         { 6             Console.WriteLine("Welcome to our Home"); 7         } 8         public void GuestName() 9         {10             Console.WriteLine("Guest name is: Shanu");11         }12       13     }14      class HouseOwnerClass : GuestVist15     {16         static void Main(string[] args)17         {18             HouseOwnerClass obj = new HouseOwnerClass();19             obj.Guestwelcomemessage();20             obj.GuestName();21             Console.ReadLine();22         }23     }

多層次繼承--不止一個衍生類別的例子。下面的例子中我們可以看到baseclass派生了DerivedClass1,而DerivedClass1派生了DerivedClass2。因此DerivedClass2可以訪問DerivedClass1和baseclass兩個類的公開成員和方法。

 1 public class baseClass 2     { 3         private void privateMethod() 4         { 5             Console.WriteLine("private Method"); 6         } 7  8         public void publicMethod() 9         {10             Console.WriteLine("This Method Shared");11         }12     }13     public class DerivedClass1 : baseClass14     {15         public void DerivedClass1()16         {17             Console.WriteLine("Derived Class 1");18         }19     }20     public class DerivedClass2 : DerivedClass121     {22         static void Main(string[] args)23         {24             DerivedClass2 obj = new DerivedClass2();25             obj.publicMethod();26             obj.DerivedClass1();27             //obj.privateMethod(); //This will be error as private method can not be accessed in Derived Class28         }29 30     }
多重繼承:

.Net支援多重繼承嗎?NO

一個類不能支援多重繼承。

什麼是多重繼承?多重繼承就是 一個類繼承多個基類。就是一個衍生類別繼承多於1個基類。

c#使用了多重繼承會發生什嗎?

繼續來看屋子的執行個體。下面的例子中我們有一個衍生類別ouseOwnerClass,兩個基類“GuestVist” 和“FriendsandRelationsClass”.

現在家裡來了兩個人一個客人,一個朋友。因此我們寫的3個類中衍生類別繼承了2個類。當我用c#寫一個多重繼承,編譯器會給出警告資訊但是可以執行代碼。警告資訊是“Expected and interface”。

 

那麼怎樣才能支援多重繼承呢?

答案是使用介面,介面支援多重繼承。

~~~~今天就到這裡,洗澡睡覺咯

C#物件導向的基本概念 (Basic C# OOP Concept) 系列二

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.