歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C# 之面向對象基礎總結

C# 之面向對象基礎總結

日期:2017/3/1 10:04:23   编辑:Linux編程

學完C#視頻後,對面向對象這個概念有了更深的體會。

那麼什麼是面向對象呢,什麼樣的程序是面向對象的設計呢,要明白這些首先要了解面向對象的三大特性:封裝、繼承、多肽。

總結圖:

一:封裝

是把客觀事物封裝成抽象的類

如:Cat類

class Cat //定義Cat類
{
private string name; //聲明Cat類的私有字符串變量, 是內部字段

public Cat() //構造方法
{
this.name = " ";
}
public Cat(string name) //將構造方法重載
{
this.name = name;
}

public string Shout() //Shout 貓叫方法
{
return "喵";

}
}

貓的屬性name和Shout()的方法,都在Cat這個類中。

表面上看,Cat 類用 { }將它的屬性和方法括在了一起,其實是對象進行封裝。就好比我們常用的筆記本電腦,將很多零件封裝在了內部,我們用電腦的時候,只需要按一下開關就可以拉,不用再管他們內部的操作。

二:繼承

是類間的關系,被繼承的類是基類,繼承的類為派生類。

在C#中繼承的關鍵符號是 “:”,如Cat 類繼承Animal 類

class Cat : Animal //Cat 類繼承Animal 類
{
public Cat()
: base() //子構造方法需要調用父類同樣的構造方法用base關鍵字
{ }
public Cat(string name)
: base(name)
{ }

使用繼承將子類公共部分放到父類,不僅可以減少代碼重復,而且修改方便。

三:多肽

多肽表示不同的對象有相同的動作,但是通過他們自己的實現代碼執行

多肽實現:1,將所要實現的方法定義成父類中的虛方法;2,子類使用override實現

具體如下:

  class Animal
{
public virtual string Shout() //定義了一個Shout的虛方法,可以子類被重寫
{
return "";
}

}

class Cat : Animal //Cat 類繼承Animal
{
public override string Shout()//對父類中的虛方法重寫,得到自己的Shout方法
{
return "喵";
}
}

class Dog : Animal
{
public override string Shout()
{
return "旺";
}
}

總結:

1,屬性是封裝對象的數據,方法是對象的行為,在代碼中,屬性後面不帶括號,方法帶括號。

2,判斷兩個類間是不是繼承關系,就判斷滿不滿足“什麼什麼是什麼”,如“狗是動物”。

3,抽象類一定是用來繼承的,且實例化沒有意義。

4,重載是兩個或者多個構造函數,重寫是實現父類中的虛方法(virtual /override)。

5,在基類中定義的虛方法有方法體,實現的時候是重寫,有選擇的,而抽象方法沒有方法體,必須別子類重寫。

Copyright © Linux教程網 All Rights Reserved