C 繼承與介面

2021-09-02 23:12:00 字數 3035 閱讀 5242

繼承的使用首先是為了簡化我們的程式,避免同一性質的資料浪費過多的記憶體空間,同時也是為了更好的維護,就是當我們只想改變乙個類中的資料時,就可以改變所有用到這個類的資料了。繼承的使用是以類而言的,通過繼承關係,乙個類可以繼承該基類所有成員資料和方法函式,當然該類也可以重新修改自己所繼承的基類的方法等。類不支援多重繼承,只能乙個乙個繼承,例如:class gezi:birdclass這就是鴿子類繼承鳥類的繼承。而介面是可以多重使用的。public class gezi,inteface1,inte***ce2這就是介面的多重使用,中間用逗號隔開。舉個例子:比如鳥類的一般屬性有羽毛,喙,爪子,以及飛行等,而鴿子不僅具有一般鳥類的屬性,還具有自己獨特的屬性,當我們研究一些特定的鳥類時,如果重複定義這些相同的屬性,既浪費了記憶體空間,又不利於後期維護。

下面首先先定義了乙個基類,它包含一般鳥類所擁有的特性:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 繼承和介面

set

} public string length

set

} public float weight

set

} public void

fly(

) public void

eat(

) public virtual void

speed()

//virtual關鍵字所代表的是虛方法,是可以被他的繼承類改變重寫的;

}}

又定義了兩個類,鴿子類和大雁類,他們都繼承鳥類的一般屬性:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 繼承和介面

public void

shilu()

}}using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 繼承和介面

public void

sleep()

public override void

speed()

//重寫基類中的speed方法,使用override關鍵字;

}}

下面的是主函式中的呼叫:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 繼承和介面

}}

結果是:

上面就是繼承的一些用法;

下面講的是介面的一些用法:類與類之間叫做繼承,類與介面之間叫做實現。介面中只能包含方法、屬性等的宣告,不能有資料變數,以及修飾符等。下面是定義了幾個介面以及實現該介面的類:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 繼承和介面

}using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 繼承和介面

}using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 繼承和介面

}using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 繼承和介面

public void

fun2()

public void

fun3()

}}

以及最終的執行程式:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace 繼承和介面

}}

這裡是結果:

以上就是類與類的繼承,類與介面的實現功能的一些用法。

C 介面繼承與實現繼承

介面繼承與實現繼承 moakap 所謂介面繼承,就是派生類只繼承函式的介面,也就是宣告 而實現繼承,就是派生類同時繼承函式的介面和實現。我們都很清楚c 中有幾個基本的概念,虛函式 純虛函式 非虛函式。虛函式 虛函式是指乙個類中你希望過載的成員函式,當你用乙個基類指標或引用指向乙個繼承類物件的時候,你...

c 介面繼承與實現繼承

所謂介面繼承,就是派生類只繼承函式的介面,也就是宣告 而實現繼承,就是派生類同時繼承函式的介面和實現。我們都很清楚c 中有幾個基本的概念,虛函式 純虛函式 非虛函式。虛函式 虛函式是指乙個類中你希望過載的成員函式,當你用乙個基類指標或引用指向乙個繼承類物件的時候,你呼叫乙個虛函式,實際呼叫的是繼承類...

C 介面繼承與實現繼承

介面繼承 派生類只繼承函式的介面 實現繼承 派生類同時繼承函式的介面和實現 虛函式是過載的一種表現方式,是一種動態的過載方式。非虛函式 繼承該函式的介面和乙份強制性實現。虛函式 會繼承該函式的介面和預設實現。純虛函式 純虛函式在基類中沒有定義,介面繼承。含有純虛函式的類無法例項化。總結來說 純虛函式...