遺產繼承基礎知識
法定繼承是依照法律的規(guī)定,由繼承人按繼承順序、繼承份額進行繼承。
《繼承法》規(guī)定的法定繼承人是:配偶、子女、父母、兄弟姐妹、祖父母、外祖父母。
繼承順序是指上述繼承人繼承遺產的先后順序。《繼承法》將繼承人分成兩個繼承順序:
第一順序:配偶、子女、父母;
第二順序:兄弟姐妹、祖父母、外祖父母。
繼承開始后,先由第一順序的繼承人繼承,沒有第一順序繼承人繼承(包括沒有第一順序繼承人及雖有第一順序繼承人但全部放棄或喪失繼承權的,才由第二順序繼承人繼承。
繼承份額是指同一順序繼承人繼承遺產時,份額一般均等。對于有特殊困難的人、未成年人、缺乏勞動能力又無生活來源的繼承人,應該予以照顧,適當多分配一些遺產。對于有撫養(yǎng)能力和撫養(yǎng)條件的繼承人,不盡撫養(yǎng)義務的,在分配遺產時應當不分或少分,。繼承人經過協(xié)商一致,可以平均分配遺產,也可以不平均分配遺產,這一點在房產的繼承上尤為重要。
"“繼承”(Inheritance)是面向對象軟件技術當中的1個概念,假如1個類A繼承自另1個類B,就把這個A稱為"B的子類",而把B稱為"A的父類"。
繼承可以使得子類具有父類的各種屬性和方法,而不要再次編寫相同的代碼。在令子類繼承父類的同時,可以重新定義某些屬性,并重寫某些方法,即覆蓋父類的原有屬性和方法,使其獲得與父類不一樣的功能。
盡管子類包括父類的全部成員,但它不能訪問父類中被聲明成private 的成員。 繼承是指1個對象直接用另一對象的屬性和方法。
事實上,我們遇到的特別多實體都有繼承的含義。例如,若把汽車看成1個實體,它可以分成多個子實體,如:卡車、公共汽車等。
這類子實體都具有汽車的特性,因此,汽車是它們的"父親",而這類子實體則是汽車的"孩子"。 繼承的目的:實現(xiàn)代碼重用派生類聲明: class 派生類名:繼承方式 基類名 { 新增成員聲明; };三種繼承方式: 公有繼承 public (原封不動) 保護繼承 protected (折中) 私有繼承 private (化公為私)繼承方式影響子類的訪問權限: 派生類成員對基類成員的訪問權限 通過派生類對象對基類成員的訪問權限 同類事物具有共同性,在同類事物中,每一個事物又具有其特殊性。
運用抽象的原則舍棄對象的特殊性,抽取其共同性,則得到1個適應于一批對象的類,這便是基類(父類),而把具有特殊性的類稱為派生類(子類),派生類的對象擁有其基類的全部或部分屬性與方法,稱作派生類對基類的繼承。"。
一個類最多只允許從一個類中派生;不允許從兩個或者更多的類中派生。
在C#中的繼承符合下列規(guī)則:? 繼承是可傳遞的。如果C從B中派生,B又從A中派生,那么C不僅繼承了B中聲明的成員,同樣也繼承了A中的成員。
Object類作為所有類的基類。? 派生類應當是對基類的擴展。
派生類可以添加新的成員,但不能除去已經繼承的成員的定義。? 構造函數(shù)和析構函數(shù)不能被繼承。
除此以外的其它成員,不論對它們定義了怎樣的訪問方式,都能被繼承。基類中成員的訪問方式只能決定派生類能否訪問它們。
派生類如果定義了與繼承而來的成員同名的新成員,就可以覆蓋已繼承的成員。 但這并不因為這派生類刪除了這些成員,只是不能再訪問這些成員。
類可以定義虛方法、虛屬性以及虛索引指示器,它的派生類能夠重載這些成員,從而實現(xiàn)類可以展示出多態(tài)性。1.覆蓋在類的成員聲明中,可以聲明與繼承而來的成員同名的成員。
2。多態(tài)(Polymorphism)在面向對象的系統(tǒng)中,多態(tài)性是一個非常重要的概念,它允許客戶對一個對象進行操作,由對象來完一系列的動作,具體實現(xiàn)哪個動作,如何實現(xiàn)由系統(tǒng)負責解釋。
在C#中,多態(tài)性是指同一操作作用于不同的類的實例,不同的類將進行不同的解釋,最后產生不同的執(zhí)行結果。C#支持兩種類型的多態(tài)性:? 編譯時的多態(tài)性編譯時的多態(tài)性是通過重載來實現(xiàn)的。
對于非虛的成員來說,系統(tǒng)在編譯時,根據(jù)傳遞的參數(shù),返回的類型等信息決定實現(xiàn)何種操作。 ? 運行時的多態(tài)性運行時的多態(tài)性就是指直到系統(tǒng)運行時,才根據(jù)實際情況決定實現(xiàn)何種操作。
C#中,運行時的多態(tài)性通過虛成員實現(xiàn)。編譯時的多態(tài)提供了運行速度快的特點,而運行時的多態(tài)性則帶來了高度靈活和抽象的特點。
給你舉個例子吧: class B{ protected: ?string strWebSite; public: ?string& getWebSite(){return strWebSite;} ?void setWebSite(string& strValue){strWebSite = strValue;} }; class D: public B{ public: ? ?string& getValue(){ return strWebSite;} ? ?void setValue(string& strValue){ strWebSite = strValue;} } B是父類,擁有一個protected成員strWebSite;D是子類沒有定義新的數(shù)據(jù)成員。
如果我們定義一個D對象 D d; B& rb = d; D& rd = d; rb。setWebSite("b string"); cout 。
聲明:本網站尊重并保護知識產權,根據(jù)《信息網絡傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個月內通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學習鳥. 頁面生成時間:3.948秒