歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C#中的面向對象

面向對象是一種設計思想,其實就是將一些功能進行封裝,使得這個功能有一個可以使用的實體。比方說狗就可以當成一個對象,其完成的功能是叫。在C#中面向對象也是一樣的,其也有三大屬性:封裝,繼承,多態。下面就來看看是如何在C#中實現的。

1、首先先說封裝:

還是以狗叫為例,其功能為叫,按照一般的寫法就會在主窗體裡面寫一下代碼就可完成

 Private void button1_Click(object sender,EventArgs e)
 {
  MessageBox.Show("旺");
 }

但對其進行封裝後就會有一下

 class Dog
 {
  public string Shout()
  {
   Return "旺";
  }
 }
 
 Private void button1_Click(object sender,EventArgs e)
 {
  Dog dog=new Dog();
  MessageBox.Show(dog.Shout());
 }

這樣就簡單的完成了對狗叫這個能能的封裝,這樣做是有好處的:

1)將主窗體和功能代碼分開,減少耦合

2)可以實現類內部的自由修改而不影響別的部分

3)類對外也有了清晰的可調用的接口

2、其次再來說這個繼承:

還以上面的為例,狗除了是狗它還是動物,所以動物所具有的一些東西和功能,狗都有,但是狗有的動物不一定有(比如抓兔子)。這種情況就叫狗繼承於動物。用代碼展示就是:

class Animal

{
 Protected string name="";
 public Animal(string name)
 {
  this.name=name;
 }
}
class Dog:Animal
{
 Public Dog():base(name)
 {}
}

主函數不變,還是上面的,這樣狗類就繼承了Animal的屬性name。當然繼承還是有很多好處的,比如避免代碼的重復,使得代碼得到共享,還有利於修改和擴展。

3、最後再說多態:

所謂多態就是不同的對象可以執行不同的動作。還以叫這個動作為例,執行這個動作的可以是狗叫,貓叫等等。具體代碼如下:

Abstract class Animal
 {
  //叫這個動作
  protected virtual void Shout();
 }
 class Dog:Animal
 {
  //狗可以執行這個動作
  protected override void shout()
  {
   return "旺";
  }
 }
 class Cat:Animal
 {
  //貓可以執行這個動作
  protected override void shout()
  {
   return "喵";
  }
 }

而在主窗體上則換成以下的:

 Animal  animal1= new Dog();
 Animal animal2= new Cat();
 animal1.shout();
 animal2.shout();

多態在面向對象過程的設計中應用的非常廣泛,尤其是在設計模式中,雖然我看了一點,但是基本上都是多態進行實現的。

最後總結一下:

由於面向對象程序的這些個特性使得面向對象編程有許多的優點:符合人們習慣的思維方式,易於維護和功能的擴展,代碼重用性好等等一些優點。所以這些特性就是我們學習面型對象編程的基礎,其重要性不言而喻。

Copyright © Linux教程網 All Rights Reserved