[面试问题] 什么是面向对象编程?
整理有关面向对象编程的面试问题
在
昨天,我去一家大公司面试,遇到了一个情况,我必须回答一个关于面向对象编程的问题,我以为我很清楚,但当我试图回答时,却磕磕绊绊。
多亏了这件事,我想我已经找到了自己的弱点,决定花时间重新整理一下!
什么是 ### 对象?
让我们从一般定义开始
一般理论:实际存在的东西 计算机科学:根据类的定义在内存中创建的东西。
面向对象的语言定义如下
Java:类的实例或数组 Python:具有属性值或行为的数据。
Java 中的类不是实例,但 Python 中的类是实例。
面向对象编程
通过定义对象的角色和关系来构建交互式程序。
我们可以这样定义
面向对象语言的特点
抽象
-
可以在对象之间推导出共同特征
-
定义类的部分是
多态性
-
可以对行为略有不同的函数进行相同的调用
-
为同一命令向链接对象传递解释
-
覆盖(覆盖内部源)、重载(根据参数调用另一个同名函数)
封装
-
允许你隐藏部分实现而不向外界暴露
-
如果需要与外界通信,则通过方法发送和接收信息
从 #### 继承
-
从一个类继承另一个类的功能。
-
除已创建的类外,还允许创建新类
댓글 작성
게시글에 대한 의견을 남겨 주세요.