自學C井之路4——面向對象-繼承

2020-12-17 百家號

曾幾次開始自學C#而未堅持下來。我將再一次開始自學C#,並每日記錄自學過程。以此督促自己堅持學習。同時也希望看到這篇文章的讀者不吝賜教。

「一生二,二生三,三生萬物」,世間萬物往往具有因果衍生關係。面向對象編程吸取 了這種思想,可以從現有的類衍生出新的類,類類相生,生生不息。那麼如何由一個類衍 生出新類呢?

我們創建一個脊椎動物類(Vertebrata),然後由它派 生出哺乳動物類(Mammal),最後再由哺乳動物類派生出人類(Human)。

class Vertebrata

{

//私有成員

private double weight; //體重

private double temperature; //體溫

//公有成員

//屬性:Weight

public double Weight{

get {

return weight;

}

set{

if (value < 0)

weight = 0;

else

weight = value;

}

}

//構造函數

public Vertebrata(){

spine = "脊柱";

weight = 0;

temperature = 0;

}

//方法:呼吸

public virtual void Breathe(){

Console.WriteLine("呼吸");

}

}

下面我們由 Vertebrata 類派生 Mammal 類。

//哺乳動物類

class Mammal : Vertebrata

{

//私有成員

private string arms; //前肢

private string legs; //後肢

private int age; //年齡

//公有成員

//屬性Name

public int Age{

get{

return age;

}

set{

age = value;

}

}

//構造函數

public Mammal(){

arms = "前肢";

legs = "後肢";

Age = 0;

Weight = 100;

Temperature = 37;

}

//方法:呼吸

public override void Breathe(){

Console.WriteLine("呼吸");

}

//方法:哺乳

public void Scukle() {

Console.WriteLine("哺乳");

}

//方法:信息

public virtual void Message() {

Console.WriteLine("體溫:{0}", Temperature);

Console.WriteLine("年齡:{0}", Age);

Console.WriteLine("我有:{0}和{1}", arms, legs);

}

}

知識點本人

知識點:

1.繼承的用法

2.派生類將繼承基類的繼承的除private 外的所有方法

3.protected 成員雖然不能被外界使用,但可以被派生類使用。

4.在基類中,用關鍵字 virtual 聲明虛方法。在派生類中,用關鍵字 override 重寫基類的虛方法。

5.用關鍵字 new 聲明一個重寫基類中的普通方法。這時候要使用base 關鍵字引用基類的方法

C#中所有的類都直接或間接繼承於 Object 類,如果在定義類時沒有指定基類,編譯器 就會自動使它繼承於 Object 類。 C#專門設計了 object 關鍵字,它相當於 Object 的別名。 object obj = new object(); Object 類中定義了 8 個公有虛方法,提供了一些基礎功能。

相關焦點

  • 自學C 之路3——面向對象(類)
    曾幾次開始自學C#而未堅持下來。我將再一次開始自學C#,並每日記錄自學過程。以此督促自己堅持學習。同時也希望看到這篇文章的讀者不吝賜教。面向對象面向對象的概念最早出現在Simula 67中,流行於C++,在Java等面向對象語言相繼誕生之後達到高峰。面向對象的誕生是軟體發展的必然選擇。
  • C 語言面向對象編程 - 繼承
    上一篇文章主要講述了 C 語言面向對象編程
  • C和 C + + 衍生出面向對象的程式語言,我們怎麼自學?
    C#是微軟公司發布的一種面向對象的、運行於.NET Framework之上的高級程序設計語言,它包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼在運行的過程。它是安全的、穩定的、簡單的、優雅的,由C和C++衍生出來的面向對象的程式語言。
  • C語言中的面向對象(1)-類模擬和多態,繼承
    正在閱讀:C語言中的面向對象(1)-類模擬和多態,繼承C語言中的面向對象(1)-類模擬和多態,繼承2005-01-12 10:04出處:作者:liyuming1978>   在面向對象的語言裡面,出現了類的概念。這是編程思想的一種進化。所謂類:是對特定數據的特定操作的集合體。所以說類包含了兩個範疇:數據和操作。而C語言中的struct僅僅是數據的集合。
  • C語言實現面向對象的原理
    面向對象編程,也就是大家說的OOP(Object Oriented Programming)並不是一種特定的語言或者工具,它只是一種設計方法、設計思想,它表現出來的三個最基本的特性就是封裝、繼承與多態。閱讀文本之前肯定有讀者會問這樣的問題:我們有C++面向對象的語言,為什麼還要用C語言實現面向對象呢?
  • 自學C井之路6——.NET
    曾幾次開始自學C#而未堅持下來。我將再一次開始自學C#,並每日記錄自學過程。以此督促自己堅持學習。同時也希望看到這篇文章的讀者不吝賜教。如果將 C#程序比喻為一座大廈, 那麼大廈的設計思想就是面向對象編程,而建築大廈的材料則來自於.NET 框架基礎類庫, 我們可以像使用鋼筋、水泥、磚塊一樣使用 FCL 中的類構建應用程式大廈。FCL 中的類 不但種類豐富,而且直觀形象,易於使用,能方便直觀的實現各種需求。最重要的是我們 不用關心這些功能是如何實現的,拿起來用就行了。因此學習 C#的一個重點就是學習 FCL 類庫中的常用類。
  • 一步步分析:C語言如何面向對象編程
    第二個問題:繼承繼承描述的是對象之間的關係,子類通過繼承父類,自動擁有父類中的屬性和行為(也就是方法)。這個問題只要理解了C語言的內存模型,也不是問題,只要在子類結構體中的第一個成員變量的位置放置一個父類結構體變量,那么子類對象就繼承了父類中的屬性。另外補充一點:學習任何一種語言,一定要理解內存模型!
  • 面向對象編程OOP的C語言實現
    解釋區分一下C語言和OOP我們經常說C語言是面向過程的,而C++是面向對象的,然而何為面向對象,什麼又是面向過程呢?不管怎麼樣,我們最原始的目標只有一個就是實現我們所需要的功能,從這一點說它們是殊途同歸的。過程與對象只是側重點不同而已。
  • 【4】類的繼承和多態-簡易的Python面向對象教程
    前言 面向對象是所有高級語言(Python,Java,C++等)的基石,是重中之重。 這個文章系列的目的是通過簡單易懂的例子,深入淺出,讓Python學習者牢固的掌握Python面向對象的概念和方法。
  • 自學C井之路1——Hello World
    曾幾次開始自學C#而未堅持下來。從今天開始我將再一次開始自學C#,並每日記錄自學過程。以此督促自己堅持學習。同時也希望看到這篇文章的讀者不吝賜教。叩響C#之門在百度百科中對這本書的介紹是這樣的圖書簡介圖中劃紅線的地方是這本書最吸引我的地方;書中插圖初識:C# 不要傻傻地讀作「C 井」
  • 真的可以用C語言實現面向對象編程OOP
    解釋區分一下C語言和OOP 我們經常說C語言是面向過程的,而C++是面向對象的,然而何為面向對象,什麼又是面向過程呢?不管怎麼樣,我們最原始的目標只有一個就是實現我們所需要的功能,從這一點說它們是殊途同歸的。
  • 如何用C語言實現面向對象編程OOP?
    如何用C語言實現面向對象編程OOP? 嵌入式資訊精選 發表於 2020-12-18 16:18:19 解釋區分一下C語言和OOP我們經常說C語言是面向過程的,而C++是面向對象的,然而何為面向對象,什麼又是面向過程呢?
  • 真的可以,用C語言實現面向對象編程OOP
    解釋區分一下C語言和OOP我們經常說C語言是面向過程的,而C++是面向對象的,然而何為面向對象,什麼又是面向過程呢?不管怎麼樣,我們最原始的目標只有一個就是實現我們所需要的功能,從這一點說它們是殊途同歸的。過程與對象只是側重點不同而已。
  • CSharp基礎知識-面向對象
    面向對象面向對象是一個抽象的概念,其本質就是對事物以抽象的方式建立對應的模型。 簡單來講,比如我有一隻鋼筆,那麼我就可以通過分析,可以得到 這隻鋼筆的材第是塑料,品牌是個雜牌 ,裡面裝的墨是黑色的,可以用。
  • C語言對象編程第二彈:繼承
    以實例分享了C語言對象編程的繼承與抽象。 本次分享C語言對象編程第二彈:繼承。 繼承簡單說來就是父親有的東西,孩子可以繼承過來。 當創建一個類時,我們不需要重新編寫新的數據成員和成員函數,只需指定新建的類繼承了一個已有的類的成員即可。
  • C風格的面向對象編程
    面向對象編程(OOP),最早是C++、java等面向對象語言的一個核心特點,之後發展成了一種編程思想。面向對象編程的主要特點是,把屬性(數據)與方法(函數)按照類型綁定,並按照類型之間的關係分層分模塊設計,通過基類指針和虛函數實現多態。
  • 手把手Java入門:繼承(面向對象篇)
    繼承的概念繼承是java面向對象編程中的基石,它允許創建分層次的類。繼承是子類繼承父類的特徵和行為,使得子類對象具有父類的實例域和方法,或者子類直接繼承父類的方法,使得子類具有父類相同的行為。生活中的繼承老鼠和貓都是動物類,老鼠和貓就是動物類的子類,而動物類就是父類,繼承的符合關係是:is-a.在java中實現繼承的關鍵字是extends,它可以聲明一個類是從另外一個類繼承而來的。
  • 自學C井之路7——裝箱和拆箱
    曾幾次開始自學C#而未堅持下來。我將再一次開始自學C#,並每日記錄自學過程。以此督促自己堅持學習。同時也希望看到這篇文章的讀者不吝賜教。C#中的變量分為值類型和引用類型兩種。裝箱操作能把值類型數據打包到引用型變量中,使我們能夠像使用對象一樣使用值類型變量。 系統先創建引用型變量obj,在堆中為 obj 分配空間,並存入 n 的值,這樣 n 就被裝入引用型數據obj 中了。
  • C 語言如何實現繼承與容器
    如果文中有不對的地方,還請各位朋友能及時地給我指出來,我將不勝感激,謝謝~繼承的概念繼承是面向對象軟體技術當中的一個概念,與多態、封裝共為面向對象的三個基本特徵。繼承可以使得子類具有父類的屬性和方法或者重新定義,追加屬性和方法。面向對象中的重要概念就是類,在我們熟知的程式語言 C++ 、Python 中都存在類的概念,通過現有的類從而繼承得到新的類。
  • C 語言實現面向對象第一步--對象模型
    並非所有問題都應該面向對象。也可以考慮使用普通類(plain class)(也就是常說的 C With Class)、泛型編程和獨立的函數(就像數學、C,以及 Fortran 中那樣)作為解決問題的方案。當然,OOP != 封裝、繼承、多態。