第五章多态
- 格式:ppt
- 大小:433.00 KB
- 文档页数:39
多态知识点总结多态的定义多态是指在不同的对象上调用相同的方法时,根据对象的不同而执行不同的操作。
简而言之,多态就是同一个方法调用在不同的对象上有不同的行为。
多态的实现多态的实现依赖于以下两个重要的概念:继承和方法重写(覆盖)。
在继承关系中,子类可以继承父类的方法,并进行重写,实现不同的行为。
当调用父类的方法时,如果子类已经重写了这个方法,就会调用子类的方法,从而实现多态的效果。
例如,有一个动物类Animal,其中有一个方法speak(),然后有狗类Dog和猫类Cat都继承自Animal类,并且它们都重写了speak()方法,分别实现了不同的叫声。
当调用speak()方法时,根据对象的不同会执行不同的叫声,这就是多态的实现。
多态的特点多态的特点主要包括以下几点:1. 编译时类型和运行时类型不一致在多态的情况下,对象的编译时类型和运行时类型可能不一致,这就是多态的实现。
编译时类型是指在编译期间确定的对象类型,而运行时类型是指在运行时确定的对象类型。
2. 动态绑定在进行多态调用时,方法的实际调用取决于对象的运行时类型,这就是动态绑定。
动态绑定确保了程序在运行时能够调用正确的方法。
3. 提高程序灵活性和可扩展性多态可以通过创建抽象类和接口,来定义一组相关的操作,并让不同的子类去实现这些操作,从而提高了程序的灵活性和可扩展性。
多态的优点多态的优点主要包括以下几点:1. 提高了代码的可读性和可维护性多态使得代码更加清晰和简洁,可以更好地理解和维护代码。
2. 降低了耦合度多态可以减少代码之间的耦合,提高了代码的灵活性和可扩展性,使得系统更易于维护和扩展。
3. 增加了代码的复用性通过多态,可以将通用的操作抽象出来,写成接口或抽象类的形式,从而增加了代码的复用性。
多态的应用场景多态广泛应用于面向对象编程中的各个领域,尤其是在设计模式和软件开发中,常常会用到多态来提高代码的灵活性和扩展性。
1. 接口和抽象类在接口和抽象类中经常用到多态,通过定义抽象方法来实现多态,从而让不同的子类去实现不同的行为。
1高质量C++编程第5章多态本章包含如下内容:5.1 虚函数概念5.2 虚函数的实现机制5.3 相关继承和多态的深入探讨时间:6 学时教学方法:PPT讲解2•多态性(polymorphism)是面向对象程序设计的一个重要特征,利用多态性可以设计和实现一个易于扩展的系统。
•在C++程序设计中,多态性是指具有不同功能的函数可以用同一个函数名,这样就可以用一个函数名调用不同内容的函数。
•在面向对象方法中一般是这样表述多态性的: 向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法)。
也就是说,每个对象可以用自己的方式去响应共同的消息。
34强制多态参数多态重载多态包含多态多态通用多态专用多态虚函数机制(重点)const_cast const_cast< >< >static_cast static_cast< >< >reinterpret_cast reinterpret_cast< >< >dynamic_cast dynamic_cast< >< >C 方式的()函数模板函数重载类模板运算符重载(难点)5.1.1 多态基础-三个基本概念•面向对象编程基于三个基本概念:封装、继承和动态绑定•在 C++ 中:– 1. 用类进行数据抽象和封装– 2. 继承:保持已有类的特性而构造新类的过程。
– 3. 动态绑定使编译器能够在运行时决定是使用基类中定义的函数还是派生类中定义的函数。
55.1.1 多态基础-继承和动态绑定的作用•继承和动态绑定在两个方面简化了我们的程序:–能够容易地定义与其他类相似但又不相同的新类–能够更容易地编写忽略这些相似类型之间区别的程序。
•现在写的程序可以调用将来(按规定)写的函数。
无论再从Shape派生出什么类型,希望这段代码都能够适用.float GetArea(const Shape& shape){return shape.Area();// shape为何我们不想关心!}6•从实际问题出发•我们的Clock必须要有说明性文字class Clock{public:void ShowInstruction(){cout<<"能显示时间的表,售价150元!"<<endl;}private:int m_Hour;int m_Minute;};7•ShowInstruction在派生类中的实现需要改变class Media_Clock : public Clock{public:void ShowInstruction(){cout<<"能播放音乐的表,售价200元!"<<endl;}};89•对象快疯了,我到底是谁?!•能显示时间的表,售价¥150。