
面向对象的三个基本特征是: 封装,继承和多态.
最好了解封装. 封装是面向对象的功能之一,也是对象和类概念的主要特征.
封装oop继承,即将目标事物封装到抽象类中,并且类只能由受信任的类或对象操作自己的数据和方法,并向不受信任的类或对象隐藏信息.
面向对象编程(OOP)语言的主要功能之一是“继承”. 继承是指使用现有类的所有功能并扩展这些功能而无需重写原始类的能力. 继承现有的类+扩展

通过继承创建的新类称为“子类”或“派生类”.
继承的类称为“基类”,“父类”或“超类”.
继承的过程是从一般到特殊的.
可以通过“继承”和“组成”实现继承.

在某些OOP语言中,子类可以继承多个基类. 但是通常情况下,一个子类只能有一个基类,要实现多重继承,就可以通过多重继承来实现.
继承概念分为三种: 实现继承,接口继承和可视继承.
Ø继承是指无需额外编码即可使用基类的属性和方法的能力;
Ø接口继承是指仅使用属性和方法的名称,但是子类必须提供实现的能力;

Ø视觉继承是指子表单(类)使用基本表单(类)的外观和实现代码的能力.
在考虑使用继承时,要注意的一件事是,两个类之间的关系应为“属属”关系. 例如,Employee是一个人,Manager是一个人,因此这两个类都可以继承Person类. 但是Leg类不能继承Person类,因为腿并不孤单.
抽象类仅定义将由子类创建的常规属性和方法. 创建抽象类时,请使用关键字Interface而不是Class.
OO开发范式大致是: 将对象→抽象类→将类组织成一个层次结构(继承和综合)→用类和实例设计和实现几个阶段.

多态性(polymorphisn)是一项技术,允许您将父对象设置为等于其子对象的一个或多个. 分配后,父对象可以根据当前分配给它的子对象的特性而有所不同. 简而言之,这是一句话: 允许将子类类型的指针分配给超类类型的指针.
有两种实现多态的方法,即覆盖和重载.
重写是指重新定义父类虚函数的子类.
重载意味着允许使用多个具有相同名称的功能,并且这些功能的参数表不同(也许参数数量不同,参数类型不同或两者都不同).
实际上,重载的概念不属于“面向对象编程”. 重载的实现方式是,编译器根据功能的不同参数列表修改同名功能的名称,然后这些同名功能变得不同. 函数(至少对于编译器而言). 例如,有两个同名的函数: function func(p: integer): integer;和函数func(p: string): integer;. 然后,编译器的修改后的函数名称可能如下所示: int_func,str_func. 对于这两个函数的调用,它是在编译器之间确定的,并且是静态的(请记住: 它是静态的). 换句话说,它们的地址是在编译时绑定的(早期绑定)oop继承,所以重载与多态无关!与多态性真正相关的是“覆盖率”. 当子类重新定义父类的虚函数时,父类指针将根据分配给它的不同子类指针动态地(记住: 它是动态的!)调用属于该子类的函数. 它不能在编译期间确定(无法提供被调用子类的虚函数的地址). 因此,此类功能地址在运行时绑定(后期绑定). 结论是: 重载只是一种语言功能,与多态无关,与面向对象无关!引用布鲁斯·埃克尔(Bruce Eckel)的话: “不要傻,如果不是后期绑定,它就不是多态的. ”
那么,多态性的作用是什么?我们知道封装可以隐藏实现细节并使代码模块化. 继承可以扩展现有的代码模块(类);它们的目的是对重用进行编码. 而多态是实现接口复用的另一目的!多态性的作用是确保当类继承和派生时,在使用“族树”中任何类的实例的某个属性时,正确使用它.
重载: 在编译时确定多态性: 仅在运行时确定(后期绑定)
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-236441-1.html
有多少项多少项成果