还剩26页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
中的继承C学习C语言中的继承概念,了解其在面向对象编程中的重要作用什么是继承?代码复用层次结构继承允许您从现有类创建新类,而无继承建立了一个类之间的层次结构,需从头开始编写代码其中子类继承父类的属性和方法扩展性继承使您可以轻松地扩展现有类的功能,而无需修改原始代码继承的基本概念代码复用多态性继承可以减少代码冗余,提高代继承支持多态性,允许对象以不码可读性和可维护性同的形式进行操作层次结构通过继承,可以创建类之间的层次结构,反映现实世界中的关系继承的语法类声明继承方式12使用关键字class声明基类和使用冒号:和基类名称指定派生类继承关系访问控制3使用public、protected和private关键字控制成员访问权限单继承基本概念语法一个派生类继承自一个基类,形成一个继承关系使用冒号和基类名称指定继承关系多继承多个父类复杂性一个子类继承多个父类,获得多个父类的属性和方法多继承可能导致代码复杂性增加,需要仔细管理继承关系多重继承定义示例多重继承是指一个类可以从多个基类继承属性和方法例如,一个汽车类可以同时继承车辆和引擎类的特性继承的优点代码重用代码维护12继承允许代码在不同类之间共修改基类代码,派生类会自动享,减少重复代码的编写继承更改,提高代码可维护性代码扩展3继承可以方便地扩展现有类功能,创建更复杂的类继承的缺点复杂性增加:代码维护和理解变得更依赖性:基类发生改变可能会影响派加困难.生类,造成连锁反应.派生类和基类基类派生类基类是提供数据成员和成员函数的基础类,是派生类的基础派生类是继承了基类特征的类,它可以访问基类的成员,并可以添加自己的成员派生类的访问控制公有继承私有继承基类中的公有成员在派生类中仍基类中的公有成员在派生类中变然是公有的为私有的保护继承基类中的公有成员在派生类中变为保护的基类和派生类的构造函数基类构造函数首先调用基类的构造函数初始化基类的成员变量派生类构造函数然后调用派生类的构造函数初始化派生类的成员变量基类和派生类的析构函数基类析构函数在派生类析构函数执行之前被调用12派生类析构函数在派生类对象销毁时被调用,用于释放派生类对象占用的资源函数覆盖基类函数派生类函数基类中定义的函数派生类中重新定义的函数,具有相同名称和参数列表静态绑定和动态绑定静态绑定动态绑定编译时确定函数调用运行时确定函数调用虚函数概念作用虚函数是在基类中使用`virtual`关键字声明的函数,它允许派虚函数使得在运行时根据对象的实际类型动态地调用函数,实现生类覆盖基类中的函数实现多态性纯虚函数和抽象类纯虚函数抽象类没有函数体,只能在派生类中实包含纯虚函数的类现作用定义接口,不能直接实例化抽象类的使用创建模板强制实现12抽象类提供了一个基础,用于通过继承抽象类,实现类必须构建实际的实现类提供抽象方法的具体实现隐藏细节3用户不需要知道具体实现细节,只需了解抽象类的接口类型转换向上转换向下转换将派生类对象转换为基类对象,不需要强制类型转换将基类对象转换为派生类对象,需要强制类型转换,并可能导致运行时错误向上转换和向下转换向上转换向下转换将派生类对象转换为基类对象将基类对象转换为派生类对象动态类型转换向下转换向上转换将派生类对象转换为基类对象将基类对象转换为派生类对象虚基类菱形继承数据共享当一个类从多个基类继承,而这些基虚基类确保共享祖先类的成员,避免类又共同继承自一个祖先类,就会形重复创建成菱形继承关系访问控制虚基类可以限制子类对祖先类成员的访问,防止冲突虚基类的构造过程构造顺序1先构造最顶层的基类,再依次构造各层派生类虚基类2虚基类只构造一次多重继承3每个派生类都有自己的虚基类副本虚基类的析构过程虚基类析构1从派生类析构函数中,先调用虚基类析构函数直接基类析构2然后调用直接基类的析构函数派生类析构3最后调用派生类自身的析构函数菱形继承问题重复数据二义性12当一个类继承自多个具有相同当访问基类成员时,编译器无基类的类时,就会出现重复数法确定应该使用哪个基类的成据的问题员代码复杂性3菱形继承会使代码结构变得复杂,难以理解和维护菱形继承的解决方案虚拟基类构造顺序使用虚拟基类virtual base虚拟基类保证了每个基类只被构class来解决多重继承中的数据造一次,避免了重复构造冗余问题内存管理虚拟基类通过指针来管理内存,确保基类成员只分配一次总结继承是一种强大的机制继承有助于代码复用继承可以用于创建复杂类型系统它允许你创建新的类,继承现有类的属性你可以重用现有类的代码,而不是从头开它允许你创建复杂的类层次结构,以模拟和方法始编写现实世界的对象问答环节如有任何疑问,请随时提出!。
个人认证
优秀文档
获得点赞 0