在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C++/ 類繼承
類的訪問修飾符
D語(yǔ)言運(yùn)算符
D語(yǔ)言邏輯運(yùn)算符
類指針
D語(yǔ)言元組
D語(yǔ)言指針
D語(yǔ)言模塊
D語(yǔ)言sizeof運(yùn)算符
D語(yǔ)言混合類型
D語(yǔ)言封裝
D語(yǔ)言條件編譯
類的靜態(tài)成員
D語(yǔ)言do...while循環(huán)
D語(yǔ)言結(jié)構(gòu)體
重載
D語(yǔ)言字符串-String
D語(yǔ)言決策語(yǔ)句
D語(yǔ)言接口
D語(yǔ)言for循環(huán)
D語(yǔ)言switch語(yǔ)句
D語(yǔ)言關(guān)聯(lián)數(shù)組
D語(yǔ)言范圍
D語(yǔ)言枚舉Enums
契約式編程
D語(yǔ)言并發(fā)
D語(yǔ)言開發(fā)環(huán)境設(shè)置
D語(yǔ)言別名
D語(yǔ)言常值
D語(yǔ)言常量
D語(yǔ)言函數(shù)
D語(yǔ)言if嵌套語(yǔ)句
D語(yǔ)言循環(huán)
D語(yǔ)言概述,D語(yǔ)言是什么?
D語(yǔ)言運(yùn)算符優(yōu)先級(jí)
D語(yǔ)言continue語(yǔ)句
D語(yǔ)言異常處理
D語(yǔ)言break語(yǔ)句
D語(yǔ)言if...else語(yǔ)句
D語(yǔ)言類和對(duì)象
類繼承
D語(yǔ)言字符
D語(yǔ)言教程
D語(yǔ)言關(guān)系運(yùn)算符
比較操作符重載
構(gòu)造函數(shù)和析構(gòu)函數(shù)
D語(yǔ)言抽象類
D語(yǔ)言if語(yǔ)句
D語(yǔ)言賦值運(yùn)算符
D中算術(shù)運(yùn)算符
D語(yǔ)言類成員函數(shù)
D語(yǔ)言位運(yùn)算符
D語(yǔ)言變量
D語(yǔ)言數(shù)據(jù)類型
D語(yǔ)言文件I/O
D語(yǔ)言數(shù)組
一元運(yùn)算符重載
D語(yǔ)言嵌套switch語(yǔ)句
D語(yǔ)言基本語(yǔ)法
二元運(yùn)算符重載
this指針
D語(yǔ)言聯(lián)合體
D語(yǔ)言模板
D語(yǔ)言嵌套循環(huán)
D語(yǔ)言while循環(huán)

類繼承

在面向?qū)ο缶幊讨幸粋€(gè)最重要的概念就是繼承。繼承允許我們?cè)诹硪粋€(gè)類,這使得它更容易創(chuàng)建和維護(hù)一個(gè)應(yīng)用程序來(lái)定義一個(gè)類。這也提供了一個(gè)機(jī)會(huì)重用代碼的功能和快速的實(shí)施時(shí)間。

當(dāng)創(chuàng)建一個(gè)類,而不是完全寫入新的數(shù)據(jù)成員和成員函數(shù),程序員可以指定新的類要繼承現(xiàn)有類的成員。這個(gè)現(xiàn)有的類稱為基類,新類稱為派生類。

繼承的想法實(shí)現(xiàn)是有關(guān)系的。例如,哺乳動(dòng)物IS-A動(dòng)物,狗,哺乳動(dòng)物,因此狗IS-A動(dòng)物,等等。

基類和派生類:

一個(gè)類可以從多個(gè)類中派生的,這意味著它可以繼承數(shù)據(jù)和函數(shù)從多個(gè)基類。要定義一個(gè)派生類中,我們使用一個(gè)類派生列表中指定的基類(ES)。一個(gè)類派生列表名稱的一個(gè)或多個(gè)基類和具有形式:

class derived-class: base-class

考慮一個(gè)基類Shape和它的派生類Rectangle,如下所示:

import std.stdio;

// Base class
class Shape
{
   public:
      void setWidth(int w)
      {
         width = w;
      }
      void setHeight(int h)
      {
         height = h;
      }
   protected:
      int width;
      int height;
}

// Derived class
class Rectangle: Shape
{
   public:
      int getArea()
      {
         return (width * height);
      }
}

void main()
{
   Rectangle Rect = new Rectangle();

   Rect.setWidth(5);
   Rect.setHeight(7);

   // Print the area of the object.
   writeln("Total area: ", Rect.getArea());

}

當(dāng)上面的代碼被編譯并執(zhí)行,它會(huì)產(chǎn)生以下結(jié)果:

Total area: 35

訪問控制和繼承:

派生類可以訪問它的基類的所有非私有成員。因此,基類成員,不應(yīng)該訪問的派生類的成員函數(shù)應(yīng)在基類中聲明為private。

派生類繼承了所有基類方法有以下例外:

  • 構(gòu)造函數(shù),析構(gòu)函數(shù)和基類的拷貝構(gòu)造函數(shù)。

  • 基類的重載運(yùn)算符。

多層次繼承

繼承可以是多級(jí)的,如下面的例子。

import std.stdio;

// Base class
class Shape
{
   public:
      void setWidth(int w)
      {
         width = w;
      }
      void setHeight(int h)
      {
         height = h;
      }
   protected:
      int width;
      int height;
}

// Derived class
class Rectangle: Shape
{
   public:
      int getArea()
      {
         return (width * height);
      }
}

class Square: Rectangle
{
   this(int side)
   {
      this.setWidth(side);
      this.setHeight(side);
   }
}

void main()
{
   Square square = new Square(13);

   // Print the area of the object.
   writeln("Total area: ", square.getArea());

}

讓我們編譯和運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:

Total area: 169