首页 > 其他分享 >无涯教程-D语言 - 继承

无涯教程-D语言 - 继承

时间:2023-11-18 18:32:32浏览次数:409  
标签:教程 width 继承 void 无涯 height int class Rectangle

面向对象编程中最重要的概念之一是继承,继承允许使用一个类继承另一个类,这样就可以直接调用父类的公共函数或变量,这使得维护变得更加容易。

基类和子类

子类通过":"冒号来实现继承基类。

class derived-class: base-class

考虑如下基类 Shape 及其派生类 Rectangle -

import std.stdio;

//基类
class Shape { 
   public: 
      void setWidth(int w) { 
         width=w; 
      }

      void setHeight(int h) { 
         height=h; 
      }
   
   protected: 
      int width; 
      int height; 
}
  
//派生类
class Rectangle: Shape { 
   public: 
      int getArea() { 
         return (width * height); 
      } 
}
  
void main() { 
   Rectangle Rect=new Rectangle();
   
   Rect.setWidth(5); 
   Rect.setHeight(7); 
   
   //打印对象的面积。
   writeln("Total area: ", Rect.getArea()); 
} 

编译并执行上述代码后,将产生以下输出-

Total area: 35

多级继承

继承可以具有多个级别,并在以下示例中显示。

import std.stdio;

//基类
class Shape {
   public:
      void setWidth(int w) {
         width=w; 
      }

      void setHeight(int h) {
         height=h; 
      }

   protected: 
      int width; 
      int height; 
}

//派生类
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);

   //打印对象的面积。
   writeln("Total area: ", square.getArea());
}

编译并执行上述代码后,将产生以下输出-

Total area: 169

参考链接

https://www.learnfk.com/d-programming/d-programming-inheritance.html

标签:教程,width,继承,void,无涯,height,int,class,Rectangle
From: https://blog.51cto.com/u_14033984/8464202

相关文章

  • 香橙派3b无屏幕ssh连接教程
    作为小白的我这几天买了个香橙派3b经过这几天的折腾,终于进入了ssh终端(大喜 我买的是官店的8G,创客价299,连着一起买了一个闪迪的64gTF卡 简单总结一下搭建过程:物理准备:一台电脑,香橙派与一张16G以上的tf卡,tf读卡器(一般会送)一根网线,type-c线第一步:烧录ubuntu系统到tf卡上......
  • 无涯教程-D语言 - 类和对象
    类(Class)类可以看成是创建Java对象的模板,中的数据和函数称为该类的成员。类定义类定义以关键字class开头,后跟类名,类定义之后必须是分号或声明列表,如,我们使用关键字class定义Box数据类型,如下所示-classBox{public:doublelength;//box的长度doubl......
  • 无涯教程-D语言 - 异常处理
    Exception异常是在程序执行期间出现的问题,异常提供了一种将控制权从程序的一部分转移到另一部分的方法。D异常处理基于三个关键字try,catch和throw。throw   - 出现问题时,程序将引发异常。这是通过throw关键字完成的。catch   -  catch关键字用于捕获......
  • 无涯教程-D语言 - 并发
    并发使程序在多个线程上运行,一个示例是Web服务器同时响应多个客户端,并发通过消息传递很容易,但是它们基于数据共享则很难编写。启动线程函数spawn()将指针作为参数,并从该函数启动新线程,该函数执行的任何操作,包括它可能调用的其他函数,都将在新线程上执行。importstd.stdio;im......
  • 磁力搜索引擎大全教程,如何使用磁力链接。
      磁力链接是一种特殊的下载链接,磁力链接可以理解为一个文件识别码,而并非具体的资源地址,下载软件需要拿着这个识别码去整个互联网(DHT网络)去寻找持有该资源的用户(节点),如果找到则可以进行传输下载。一般年代越久远的磁力链接下载成功的几率越小,因为持有该资源的节点越少。一......
  • 无涯教程-D语言 - 文件I/O
    文件File由std.stdio模块的File结构表示,文件表示字节序列,无论是文本文件还是二进制文件都没有关系,D编程语言提供对高级函数的访问/处理存储设备上文件。打开文件首先通过指定文件名和所需的访问权限来打开文件。Filefile=File(filepath,"mode");在这里,filename是字符串......
  • 无涯教程-D语言 - 不可变(Immutables)
    我们经常使用可变的变量,但是在很多情况下不需要可变性。D的不变性概念由const和immutable关键字表示,尽管这两个词本身的含义很接近,但它们在程序中的职责有所不同,有时是不兼容的。枚举常量枚举常量使将常量值与有意义的名称相关联成为可能,一个简单的如下所示。importstd.stdi......
  • Windos操作系统下的Zookeeper安装图文教程
    凯哥已经准备好最新版本3.9.1且已经配置好了。既获取到配置好的。获取到凯哥准备的安装后,只需要修改一下配置。将解压包解压后,找到conf文件,里面有个zoo.cfg配置文件。如下图:下载后conf文件夹内容打开zoo.cfg配置文件后,找到13、14这两行。将dataDir和dataLogDir的路径修改成自......
  • Windos操作系统下的Zookeeper安装图文教程
    凯哥已经准备好最新版本3.9.1且已经配置好了。既获取到配置好的。获取到凯哥准备的安装后,只需要修改一下配置。将解压包解压后,找到conf文件,里面有个zoo.cfg配置文件。如下图:下载后conf文件夹内容打开zoo.cfg配置文件后,找到13、14这两行。将dataDir和dataLogDir的路径修改成自己的就......
  • 无涯教程-D语言 - 模板(Templates)
    模板是通用编程的基础,它涉及以独立于任何特定类型的方式编写代码。函数模板将函数定义为模板会将其使用的一种或多种类型保留为未指定状态,以便稍后由编译器推导。在模板参数列表中定义了未指定的类型,该参数介于函数名称和函数参数列表之间。因此,函数模板具有两个参数列表-模板......