还剩40页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《继承与派生》ppt课件•继承与派生的基本概念目•继承的实现方式录•派生的实现方式•继承与派生的应用场景•继承与派生的注意事项CONTENTS01继承与派生的基本概念CHAPTER继承的定义继承是指一个类(称为子类或派通过继承,子类可以重用父类中继承是面向对象编程中的一个重生类)继承另一个类(称为父类已有的属性和方法,并且可以扩要概念,它有助于代码重用和实或基类)的成员(包括数据成员展或修改它们以满足特定的需求现多态性和成员函数)的过程派生的定义派生是指从一个或多个已有类新类通常会继承已有类的属性、派生可以帮助我们构建更复杂创建一个新类的过程方法和行为,并可以添加新的的类,以满足特定的需求特性或修改已有特性继承与派生的关系继承是派生的一部分,但派生不仅仅包括继承派生允许我们创建具有相似特性的新类,而继承则是在已有类的基础上添加或修改特性通过组合继承和派生,我们可以构建更复杂、更灵活的软件系统02继承的实现方式CHAPTER公有继承总结词公有继承是C中最常见的继承方式,它使得基类的公有成员在派生类中保持公有访问权限详细描述在公有继承中,基类的公有成员在派生类中默认也是公有的,这意味着派生类可以访问基类的公有成员函数和公有数据成员这种继承方式保持了基类成员的公有性,使得派生类可以方便地使用基类的公有功能,同时也可以重写基类的公有成员函数私有继承要点一要点二总结词详细描述私有继承使得基类的公有成员在派生类中变为私有成员,在私有继承中,基类的公有成员在派生类中默认变为私有通常用于实现is-a关系成员,这意味着派生类不能直接访问基类的公有成员函数和公有数据成员这种继承方式使得派生类只能使用基类的保护成员和私有成员,同时也可以重写基类的公有和保护成员函数私有继承通常用于实现is-a关系,即派生类是基类的一种类型保护继承总结词详细描述保护继承使得基类的保护和公有成员在派生类中保持在保护继承中,基类的保护和公有成员在派生类中保持保护和公有访问权限其原有的访问权限这意味着派生类可以访问基类的保护和公有成员函数以及保护和公有数据成员这种继承方式使得派生类可以方便地使用基类的保护和公有功能,同时也可以重写基类的保护和公有成员函数保护继承提供了一种折衷的方式,使得基类的成员可以在派生类中被访问和重写,同时又不会影响到其他不相关的代码03派生的实现方式CHAPTER单继承定义单继承是C中实现类之间继承的一种方式,一个类只能从另一个类中继承特点子类只能继承父类的一个类,如果父类有多个公共成员函数或数据成员,子类将无法同时继承单继承示例```cppclass Base{单继承publicvoid func1{}void func2{}单继承};class Derived:public Base{单继承publicvoid func3{}单继承};```多继承定义多继承是指一个类可以同时从多个类中继承特点多继承可以解决单继承中无法同时继承多个公共成员函数或数据成员的问题,但也可能导致二义性等问题多继承示例```cppclass Base1{多继承01public02void func1{}多继承};class Base2{多继承publicvoid func2{}多继承};class Derived:public Base1,publicBase2{多继承publicvoid func3{}多继承};```VS虚继承定义特点虚继承是C中解决多重继承导致菱形问题的虚继承可以解决多重继承导致的二义性问题,一种技术通过虚继承,一个类可以从两个但会增加代码的复杂性和内存开销或多个类中继承,但只能通过一个公共基类来访问这些类的成员虚继承示例01```cpp02class Base1{03虚继承public voidfunc1{}虚继承};class Base2{虚继承public voidfunc2{}虚继承};class Derived:public virtualBase1,public virtualBase2{虚继承publicvoid func3{}虚继承};```04继承与派生的应用场景CHAPTER类的设计类的继承通过继承,子类可以继承父类的属性和方法,从而减少代码重复,提高开发效率类的派生通过派生,子类可以根据自己的需求扩展或修改父类的属性和方法,实现更加灵活的类设计代码的重用继承派生通过继承,子类可以直接使用父类的方法和属性,避免通过派生,子类可以在父类的基础上添加新的属性和方了代码的重复编写,提高了代码的重用性法,或者重写父类的方法,实现代码的扩展和修改,进一步提高代码的重用性多态的实现要点一要点二继承派生通过继承,子类可以重写父类的方法,实现多态性在运通过派生,子类可以在父类的基础上添加新的方法,实现行时,根据对象的实际类型来调用相应的方法多态性在运行时,根据对象的实际类型来调用相应的方法05继承与派生的注意事项CHAPTER继承的访问权限继承方式公有继承在C中,继承方式有公有派生类可以访问基类的公有和保(public)、保护(protected)护成员,但无法访问基类的私有和私有(private)三种不同的成员继承方式会影响派生类对基类成员的访问权限私有继承保护继承派生类只能访问基类的公有成员,派生类可以访问基类的公有和保无法访问基类的保护和私有成员护成员,但无法访问基类的私有成员派生时的构造函数和析构函数构造函数在派生类构造函数中,必须显式调用基类的构造函数,以确保基类对象正确初始化如果未显式调用基类构造函数,编译器将自动调用基类默认构造函数析构函数在派生类析构函数中,必须显式调用基类的析构函数,以确保基类资源正确释放如果未显式调用基类析构函数,编译器将自动调用基类默认析构函数虚函数和纯虚函数在继承与派生中的应用虚函数纯虚函数在基类中声明为virtual的成员函数可以在基类中声明为virtual且没有实现(即没在派生类中被重写(override)通过使有函数体)的成员函数称为纯虚函数含用虚函数,可以实现动态多态性,即在VS有纯虚函数的类称为抽象类,不能被实例不同派生类对象中以统一方式调用该函化派生类必须实现基类中的所有纯虚函数数才能被实例化纯虚函数用于规定派生类必须实现的行为,但具体的实现方式由派生类决定THANKS感谢您的观看。