还剩27页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
语言中的继承C本课程将深入讲解语言中的继承概念,并阐述其在面向对象编程中的重要性C什么是继承代码复用代码扩展继承允许子类从父类继承属性和子类可以扩展父类的功能,添加方法,减少代码冗余新的属性和方法,实现更复杂的逻辑代码组织通过继承,可以将代码组织成层次结构,提高代码可读性和维护性继承的基本概念代码复用扩展功能多态性继承允许您从现有的类创建新类,并保留您可以通过添加新的属性和方法来扩展现继承支持多态性,这意味着您可以使用相现有类的属性和方法有类的功能,创建更专门的类同的代码来操作不同类型的对象继承的优点代码复用性提高开发效率提升代码维护更容易单继承单继承指的是一个类只从一个父类继承属性和方法这是一种简单的继承方式,在很多情况下都能够满足需求单继承的声明方式类定义1使用关键字定义子类,并指定父类class访问控制2使用、或关键字控制子类对父类成员的访问权限public protectedprivate继承关系3子类继承父类的所有成员,包括数据成员和方法成员单继承的构造和析构派生类构造函数1首先调用基类构造函数派生类析构函数2最后调用基类析构函数成员初始化3在派生类构造函数中初始化成员单继承的访问控制私有成员保护成员公共成员只能在类内部访问可以在类内部和派生类中访问可以在任何地方访问单继承的方法重写子类重写父类方法保持相同方法名12子类可以重写父类中的方法,重写的方法必须具有与父类方提供更具体的实现法相同的名称、参数列表和返回值类型调用父类方法3子类可以使用语法调用父类方法`base::method`单继承的类型转换向上转型向下转型将子类对象赋值给父类引用,编译器自动进行类型转换将父类引用赋值给子类引用,需要使用显式类型转换,可能导致运行时错误多继承多继承允许一个类从多个父类继承属性和方法代码示例优势复用性更高,代码更简洁class Derived:public Base1,publicBase2{...};多继承的声明方式类名1定义新的类名称基类列表2用逗号分隔的基类名称类体3包含成员变量和方法多继承的构造和析构构造函数多继承中,构造函数的调用顺序是从左到右,先调用父类的构造函数,再调用子类的构造函数析构函数析构函数的调用顺序与构造函数相反,先调用子类的析构函数,再调用父类的析构函数多继承的访问控制子类只能访问父类的成员子类可以通过访问父类**public****protected**的受保护成员子类无法访问父类的成员**private**多继承的方法重写基类方法重写方法名相同访问权限123子类可以重写继承自多个基类的方法重写的方法必须与基类中的方法具有子类重写的方法访问权限必须与基类,实现特定子类的功能相同的名称和参数列表中的方法相同或更宽松虚基类虚基类是用来解决多继承中出现菱形继承问题的一种机制,它可以防止同一个“”基类在继承层次结构中被多次实例化定义作用通过在基类声明中使用关键避免重复继承,确保在多继承的情况virtual字来定义虚基类下,每个基类只被实例化一次虚基类的构造和析构构造顺序1从左到右,从上到下析构顺序2从下到上,从右到左虚基类3避免重复初始化虚基类的访问控制公有继承私有继承虚基类中的公有成员在派生类中虚基类中的私有成员在派生类中仍然是公有的仍然是私有的保护继承虚基类中的保护成员在派生类中仍然是保护的虚基类的方法重写父类方法调用多重继承问题当子类重写虚基类的方法时,编译器会根据对象的实际类型选择虚基类通过解决多重继承中可能出现的二义性问题,确保方法的要调用的方法正确调用虚函数虚函数是面向对象编程中非常重要的概念,它允许我们在基类中声明一个函数,并在派生类中重新定义它动态绑定多态性12虚函数使编译器在运行时动态虚函数支持多态性,允许我们绑定函数调用,根据对象的实用基类指针或引用调用派生类际类型来选择执行哪个版本的对象的函数函数虚函数的声明关键字virtual1在成员函数声明前添加关键字virtual函数原型2函数原型与普通函数相同继承关系3虚函数必须在基类中声明虚函数的实现123定义重写调用在基类中使用关键字声明函数,在派生类中重新定义虚函数,提供特定使用基类指针或引用调用虚函数时,运virtual使其成为虚函数于派生类的实现行时根据实际对象类型选择正确的实现虚函数的调用动态绑定在运行时根据对象的实际类型选择要调用的函数指针或引用通过指针或引用访问虚函数才能实现动态绑定多态性虚函数是实现多态性的关键,允许不同的对象对相同的消息做出不同的响应纯虚函数纯虚函数没有函数体,只声明函数的接口,由派生类实现具体功能用于定义抽象类,强制子类实现特定方法抽象类抽象类是不能被实例化的类,用于定义一些基本方法,并由子类来实现不可实例化包含纯虚函数抽象类不能直接创建对象,只能抽象类中至少包含一个纯虚函数通过继承创建子类,用于定义子类必须实现的方法提供模板抽象类提供一个通用模板,供子类继承并实现特定功能抽象类的特点不能实例化包含纯虚函数用于定义接口抽象类的应用定义通用接口强制子类实现12抽象类可以定义一个通用的接通过抽象方法,抽象类可以强口,使子类必须实现其抽象方制子类实现某些功能,确保代法码的一致性提高代码可维护性3使用抽象类可以降低代码的复杂度,提高代码的可读性和可维护性总结继承单继承多继承虚函数语言中的继承机制,使类一个类只能继承自一个父类,一个类可以继承自多个父类,实现多态性,使程序更加灵活C++可以复用现有类的特性,提高简化了类之间的关系,降低了提供了更大的灵活性,但增加,并方便了程序的扩展和维护代码的可重用性和可扩展性代码复杂度了代码维护的难度问题讨论欢迎大家提出关于语言继承相关的问题,我们会尽力解答C。
个人认证
优秀文档
获得点赞 0