必须阅读 47 个面向应届生和有经验的 OOP 面试问题和答案 [2022]
已发表: 2021-06-22参加编程面试并想知道您将经历的所有问题和讨论是什么? 在参加面试之前,最好先了解面试问题的类型,以便在心理上为它们准备答案。
为了帮助您,我创建了顶级OOP 面试问题和答案指南,以了解 OOP 面试问题的深度和真实意图。 让我们开始吧。
顶级 OOP 面试问题和答案
让我们了解最常见的 OOPS 面试问题和答案。
1. 什么是面向对象编程?
这是最基本的OOPs 面试题。 你的答案应该是:
面向对象编程是指使用对象定义的编程范式,而不仅仅是函数和方法。 对象包含数据,称为字段或属性,以及提供逻辑或支持代码的方法。 它提供了继承、多态、封装、抽象等能力。
2. 面向对象编程的主要特点是什么?
OOPs interview question 在这个OOPs 面试问题遗产
3. 面向对象编程的优点是什么?
最常见的 oops 面试问题之一。
- 面向对象编程可以支持任何复杂程度的问题。
- 面向对象编程可以处理高度复杂的问题
- 它使用继承提供了一种有效的代码重用机制,从而减少了冗余
- 它提供了一种隐藏数据的机制
- 它基于自下而上的方法
- 它通过多态性提供灵活性
- 它提高了代码的可维护性
4.什么是结构化编程?
结构化编程是指传统的编程方法,它是基于函数的。 将整个程序逻辑划分为功能以提供逻辑结构。 它基于自上而下的方法。 结构化编程适用于简单到中等复杂的问题。
5.什么是类?
类定义模板或对象的定义。 它用于在运行时创建对象。 它提供数据结构,为属性提供初始值,以及为对象的预期行为提供逻辑的方法。 该类在运行时不消耗内存。 类是指一个逻辑实体。 例如,车辆可以被定义为一个类。
6. 对象是什么意思?
对象是指在程序执行期间从类创建的运行时实例。 对象可以引用具有支持行为的属性或属性和方法的现实世界实体。 对象在初始化时会消耗内存空间。
7. 是否总是需要从类中创建对象?
不,如果将基类方法定义为静态方法,则可以调用它。
8. 什么是构造函数?
构造方法用于初始化对象。 它们是特殊类型的方法,与类同名。
阅读: Java 面试问答
9.列出各种类型的构造函数
跨多种面向对象编程语言支持的多种类型的构造函数是:
- 默认构造函数
- 复制构造函数
- 静态构造函数
- 私有构造函数
- 参数化构造函数
10. 什么是析构函数?
析构函数是一种用于释放分配给对象的资源的方法。 此方法在对象被销毁时自动调用。
11. 拷贝构造函数是什么意思?
复制构造函数通过将值从一个对象复制到属于同一类的另一个对象来帮助克隆对象。
12. 你能强调一下类和结构之间的区别吗?
类是指用户定义的模板,在运行时从该模板中创建对象。 类由为对象支持的各种行为提供逻辑的方法组成。
结构是指用户定义的各种数据类型属性的组合。
13. 可以举个例子解释一下继承的概念吗?
继承是面向对象编程的一个强大功能,它允许类从其他类继承属性和方法。 这有助于提高代码重用性。
例如,一个基类代表一个逻辑概念,例如一个车辆,它可以只定义所有类型的车辆共享的公共属性。 但是,子类可以从这个基类继承来定义更具体的类类型,例如卡车、汽车或公共汽车。 在这种情况下,子类将继承车辆的共同属性,并能够定义自己特定的属性、方法。
14. 继承有什么限制?
继承需要更多的程序处理时间,因为它必须在执行期间导航各种类。 由于继承,父类和子类是紧密耦合的。 当逻辑需要任何更改时,可能需要更改父类和子类。
如果继承没有正确实现,可能会导致不希望的结果。
15. 继承的种类有哪些?
- 单身的
- 多种的
- 多层次
- 分层的
- 杂交种
16、层次继承是什么意思?
当多个子类继承一个基类时,称为层次继承。
17. 区分多级继承和多级继承?
在多重继承的情况下,一个类继承了多个父类。 相反,多级继承意味着类继承自另一个类,该类是某个其他父类的子类。
18. 如何定义混合继承?
混合继承被定义为在单个类中使用多级和多级继承。
阅读:SQL 面试问答
19. 什么是子类?
从另一个类继承的子类称为子类。
20. 定义一个超类?
超类意味着一个类,其他类从该类继承。 例如,如果车辆都继承自同一个超类,则车辆将被称为 car、bus 或 truck 类的超类。
21. 接口是什么意思?
接口允许在不提供定义的情况下声明方法。
您不能从界面创建对象。 类实现接口时,需要实现接口提供的方法。
22.什么是多态性?
多态性是面向对象编程的一个重要特征。 它意味着以多种形式存在的能力。 通过提供各种定义,可以以多种方式实现单个接口。
阅读更多: Java 如此受开发人员欢迎的 6 大原因
23、静态多态是什么意思?
静态多态性或静态绑定允许我们在编译期间将函数与对象链接。 可以通过运算符重载的方法重载来实现。
24、动态多态是什么意思?
动态多态性或动态绑定允许在运行时调用被覆盖的方法。
25. 什么是方法重载?
最常见的 oops 面试问题之一。 方法重载是面向对象编程的一个非常有用的特性,其中多个方法可以具有相同的方法名; 但是,他们有不同的论点。 对方法的调用是根据参数解析的。
26. 方法覆盖是什么意思?
方法覆盖允许子类通过应用其实现来重新定义父类的方法。 但是,方法名称、参数和返回类型保持不变。
27. 你能解释一下什么是运算符重载吗?
术语运算符重载意味着根据传递的参数,可以更改运算符的行为。 但是,它仅适用于用户定义的类型。
28. 你如何解释重载和覆盖的区别?
重载一个方法意味着多个方法共享相同的方法名称但具有不同的参数。 但是,在覆盖的情况下,子类可以通过保留相同的参数来重新定义方法的实现。 另一个区别是重载是在编译时解决的,而覆盖是在运行时解决的。
从世界顶级大学在线学习软件课程。 获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。
29、你对封装了解多少?
最常见的 OOP 面试问题之一。 封装是面向对象编程的一个重要特征。 它允许将数据和逻辑绑定在一个实体中。 它还允许隐藏数据。
30. 数据抽象是什么意思?
数据抽象是指面向对象编程的能力,它允许隐藏逻辑的实现细节,但只允许访问重要信息。
查看:全栈开发人员面试问题
31、如何实现数据抽象?
数据抽象可以通过抽象类或抽象方法来完成。
32、抽象类是什么意思?
如果没有这个问题,任何 OOPS 面试问答指南都不会完成。 抽象类由抽象方法组成。 抽象方法仅被声明,但未实现。 当子类需要使用这些方法时,它需要实现这些方法。
33. 您能否详细说明“访问说明符”?
OOPs interview question's 用例子支持这个OOPs 面试问题的访问说明符是控制方法或类等可访问性的特殊关键字。它们也称为访问修饰符,用于实现封装。 例如,关键字 public、private 和 protected 是访问说明符的一些示例。
34. 如何创建抽象类的实例?
您不能创建抽象类的实例,因为它的方法中缺少实现逻辑。 在初始化对象之前,您首先需要创建一个实现所有方法的子类。
35.什么是虚函数?
虚函数在父类中定义,并且可以实现定义。 子类可以覆盖这些定义。
36.什么是纯虚函数?
纯虚函数只在父类中声明。 它也被称为抽象函数。 纯虚函数在基类中不包含任何定义。 它们必须在子类中重新定义以实现所需的实现。
37. 区分数据抽象和封装。
数据抽象是隐藏不需要的信息的能力。
封装是指将数据和方法隐藏在一起的能力。
38、接口和抽象类有什么区别?
它是通用 oops 面试问答指南之一。 抽象类可以同时支持抽象和非抽象方法。 但是,接口只允许抽象方法。
在抽象类的情况下,最终和非最终变量都受支持。 但是,该接口具有默认定义为 final 的变量。
抽象类可以具有私有和公共属性,但接口默认具有公共属性。
39.什么是final变量?
最终变量是指其值不变的变量。
40. 异常是什么意思?
异常是在程序执行期间由不希望的输入或阻止进一步处理的条件引起的事件。 异常会导致程序正常执行的中断,必须通过异常处理逻辑进行处理,以免程序终止。
41.定义异常处理
异常处理是指用于处理程序执行期间引发的异常的机制。 它允许优雅地处理不良结果。
42. 错误与异常基本相同吗?
错误意味着程序不应捕获的问题,而异常意味着应由程序捕获的条件。
43.什么是try-catch块?
try-catch 块用于异常处理。 可能导致潜在错误的语句集包含在 try 块中。 当引发异常时,它会被 catch 块捕获。 处理异常的逻辑放置在 catch 块中。
44. 什么是finally块?
“finally”块用于执行基本语句,例如释放内存、关闭文件或数据库连接,即使发生异常也是如此。 finally 块总是运行。
45. 'finalize' 方法是做什么用的?
在启动垃圾收集器之前调用 finalize 方法来释放未使用的资源。
46. 什么是垃圾收集,它是如何工作的?
垃圾收集是编程语言执行自动内存管理的能力。 它通过删除不再需要的对象来自动释放内存。
47. 你应该一直使用面向对象编程吗? 面向对象编程有什么限制吗?
这是高级 oops 面试题之一。 尽管面向对象编程提供了许多优点,但它也有一些缺点。 首先,与过程编程相比,它的学习曲线陡峭。 许多人可能需要一段时间才能习惯于根据对象进行思考和编程。 其次,从对象的角度设计程序可能需要更多的经验。 将 OOP 概念用于较小的编程任务可能效率不高。
查看: 15个面试技巧,让你在求职面试中脱颖而出
结论
我们希望我们的 Google Analytics(分析)问答指南对您有所帮助。 我们将定期更新指南,让您随时了解最新情况。 面向对象的编程需要一些时间来掌握。 我们建议您进行大量练习以理清基础知识,这将有助于您在面试中回答问题。 我们希望我们的 Google Analytics(分析)问答指南对您有所帮助。 我们将定期更新指南,让您随时了解最新情况。
最后,我们想用一个技巧来帮助您在现实生活中实践这个概念。 每当您查看现实世界的对象时,请尝试将它们与面向对象的概念联系起来,并尝试识别它们的属性和方法。 一旦掌握了这一点,编程将变得更加容易和愉快。
如果您有兴趣了解有关全栈软件开发的更多信息,请查看 upGrad 和 IIIT-B 的软件开发执行 PG 计划 – 全栈开发专业化,专为在职专业人士设计,提供 500 多个小时的严格培训,9 + 项目和任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。