首页 > 其他分享 >多态

多态

时间:2023-02-21 09:12:43浏览次数:35  
标签:调用 area int 子类 多态 父类 构造函数

子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法

因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。
构建子类对象时一定会先调用父类的构造函数,子类默认调用父类的无参构造函数,当然也可以用初始化参数列表指定调用父类的构造函数

Rectangle( int a=0, int b=0):Shape(a, b) { }

 

 1 #include <iostream> 
 2 using namespace std;
 3  
 4 class Shape {
 5    protected:
 6       int width, height;
 7    public:
 8       Shape( int a=0, int b=0)
 9       {
10          width = a;
11          height = b;
12       }
13       virtual int area()
14       {
15          cout << "Parent class area :" <<endl;
16          return 0;
17       }
18 };
19 class Rectangle: public Shape{
20    public:
21       Rectangle( int a=0, int b=0):Shape(a, b) { }
22       int area ()
23       { 
24          cout << "Rectangle class area :" <<endl;
25          return (width * height); 
26       }
27 };
28 class Triangle: public Shape{
29    public:
30       Triangle( int a=0, int b=0):Shape(a, b) { }
31       int area ()
32       { 
33          cout << "Triangle class area :" <<endl;
34          return (width * height / 2); 
35       }
36 };
37 // 程序的主函数
38 int main( )
39 {
40    Shape *shape;
41    Rectangle rec(10,7);
42    Triangle  tri(10,5);
43  
44    // 存储矩形的地址
45    shape = &rec;
46    // 调用矩形的求面积函数 area
47    shape->area();
48  
49    // 存储三角形的地址
50    shape = &tri;
51    // 调用三角形的求面积函数 area
52    shape->area();
53    
54    return 0;
55 }

 

标签:调用,area,int,子类,多态,父类,构造函数
From: https://www.cnblogs.com/kernelx/p/17139692.html

相关文章

  • golang 入门(七) 接口-多态
    所谓多态就是子类在继承了父类后,自己重新写了一个方法覆盖父类的同名方法。继续引用上文的案例,父类computer中有PowerOff方法,但是子类laptop把盖子合上也可以认为是一种Powe......
  • 第七章 Part5 多态
    多态多态基本概念多态是面向对象程序设计语言中数据抽象和继承之外的第三个基本特征。多态性(polymorphism)提供接口与具体实现之间的另一层隔离,从而将”what”和”how......
  • 接口实现多态
    title:接口实现多态date:2023-02-0614:59:36tags:Golang接口使得程序更具有灵活性和拓展性的主要原因是它实现了多态性。多态性指的是不同的类型可以实现相同的接......
  • 继承、多态 中那些你该知道的知识
    面向对象编程一、继承:二、多态:一、继承:有的时候客观事物之间就存在一些关联关系,那么在表示成类和对象的时候也会存在一定的关联。例如猫它是动物,就具有动物的基本属性......
  • go语言继承和多态
    packageatypeAnimalinterface{call()}typeDogstruct{}typeCatstruct{}func(dogDog)call(){println("我是狗,狗叫")}func(catCat)c......
  • Java 多态
    目录1、多态的介绍2、多态的格式3、对象的强制类型转换4、instanceof运算符5、案例:笔记本USB接口1、多态的介绍多态(Polymorphism)按字面意思理解就是“多种形态”,即一个......
  • 关于C++ 多态实现技术的深度解析(vfptr,vftable)
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文作为本人csdnblog的主站的备份。(BlogID......
  • 多态实现让电脑去读写各种移动设备的数据
    多态实现让电脑去读写各种移动设备的数据usingSystem;namespace电脑_移动硬盘_U盘_MP3{classProgram{staticvoidMain(string[]args)......
  • 『 再看.NET7』让json序列化体现多态
    从System.Text.Json诞生,就在努力增加功能和提升性能,在.NET7中,又带来了多态的适配。下面是一个父类Customer,两个子类,WechatCustomer和LineCustomer。publicclas......
  • 『 再看.NET7』让json序列化体现多态
    从System.Text.Json诞生,就在努力增加功能和提升性能,在.NET7中,又带来了多态的适配。下面是一个父类Customer,两个子类,WechatCustomer和LineCustomer。publicclas......