面向对象编程概念解释
什么是面向对象编程
简而言之,面向对象编程就是使用包含数据和方法的对象,这些对象可以相互交互。一种语言要想被视为面向对象,必须具备以下特性:
- 封装
- 遗产
- 抽象
- 多态性
这些特性,加上具有对象和类的语言,构成了我们所知的面向对象编程。
什么是封装
当一个对象将其状态保持为私有时,就实现了封装,这样其他对象就无法直接访问该状态。相反,它们必须调用一系列公共方法来操作状态。
以下面的图片为例。Cat 有 3 个不同的字段,它们都是私有的,还有一个私有的 meow() 方法。调用 Cat 的其他对象都无法更改这些值。
然而,猫咪也拥有一系列公共方法(睡眠、玩耍和喂食)。调用这些公共方法时,会改变猫咪的状态,并调用 meow() 方法进行玩耍和喂食。
什么是继承
继承是在类中创建层次结构。从父类开始,然后扩展到子类,这些子类将重用父类的所有字段和方法,以及它实现的任何特有方法。
如下例所示,Teacher 和 Student 都是 Person 的子类,但其中一个有科目,另一个有学校。Person 是父类,Teacher 和 Student 是子类。
什么是抽象
抽象是指对象仅在高层暴露自身,并隐藏其内部实现细节的过程。调用此抽象的其他对象并不关心其实现方式,它们只需要处理这些信息即可。
可以将其视为一小组公共方法,任何其他类都可以调用它们,而无需知道它们在幕后是如何实现的。
就拿上图的手机来说吧。我们不知道手机上的按键是怎么运作的,我们只知道它们的作用。
什么是多态性
多态性是指某事物以多种不同的形式出现。它允许通过同一接口访问不同类型的对象,并且每种类型都实现该接口的独立版本。
星形、圆形和矩形都属于图形,只是不同类型的图形。它们都拥有一个calculateSurface()和calculatePerimeter()方法。区别在于它们实际的计算方式。
好了,就这些了
感谢您花时间阅读这篇文章!如果您觉得它有用,或者认为其他人也会喜欢,请分享!
如果您发现这篇文章有帮助,请订阅我的时事通讯,我会每周将更多类似的内容直接发送到您的收件箱!
文章来源:https://dev.to/travislramos/object-oriented-programming-concepts-explained-4102