What are design patterns, how do they relate to OOP, and can you explain the Singleton, Factory, and Observer patterns?

Heisenbug logo
TheHeisenBug

Search

Search across questions, learning content, and hands-on projects

Ace Your Next Tech Interview

5,986+ interview questions across 87 technologies — with expert answers, advanced search, AI-powered assistance, personal highlights, structured learning paths, and hands-on practice projects.

5,986+Questions & Answers
87Technologies
AdvancedSearch
Built-inAsk AI
PersonalHighlights
StructuredLearning Paths
Hands-onPractice Projects

Lifetime Access

One-time payment. No subscriptions. Unlock everything, forever.

$19.90USD

or R$49.90 BRL

FeatureFreePremium
Question titlesAllAll
Answers per topicTop 5All
Learning chaptersFirst 5All
Practice projectsFirst 3All
Highlights
Ask AI
Read tracking
Search

OOP Interview Questions

  1. [JUNIOR] What is Object-Oriented Programming and why is it important?
  2. [JUNIOR] What are the four main principles of OOP?
  3. [JUNIOR] What is a class and what is an object?
  4. [JUNIOR] What is encapsulation and why is it useful?
  5. [JUNIOR] What is inheritance and what is its purpose?
  6. [JUNIOR] What is polymorphism and what are its types?
  7. [MID] What is the difference between an abstract class and an interface, and when would you use each?
  8. [MID] What is the difference between composition and inheritance, and when would you choose one over the other?
  9. [SENIOR] How do you apply the Single Responsibility Principle in practice, and what are signs that a class violates it?
  10. [JUNIOR] What is abstraction and how is it achieved in OOP?
  11. [JUNIOR] What are access modifiers and what is their significance?
  12. [JUNIOR] What is the difference between method overloading and method overriding?
  13. [MID] What are the SOLID principles and why are they important?
  14. [MID] What is the difference between compile-time (static) polymorphism and runtime (dynamic) polymorphism?
  15. [MID] What are the different types of inheritance and what are the potential problems with multiple inheritance?
  16. [SENIOR] How does the Open-Closed Principle guide extensible design without modifying existing code?
  17. [SENIOR] What is the Liskov Substitution Principle and how can violating it lead to subtle bugs?
  18. [JUNIOR] What is a constructor and what are the different types of constructors?
  19. [JUNIOR] What is a destructor and when is it called?
  20. [MID] What is a copy constructor and when is it needed?
  21. [MID] What are virtual functions and pure virtual functions?
  22. [MID] What is the difference between shallow copy and deep copy of objects?
  23. [MID] What is method resolution order (MRO) and how does it handle the diamond problem in multiple inheritance?
  24. [SENIOR] How do you decide between using inheritance hierarchies and composition with dependency injection in a large codebase?
  25. [SENIOR] What is the Interface Segregation Principle and how does it prevent interface pollution?
  26. [SENIOR] What is the Dependency Inversion Principle and how does it relate to dependency injection?
  27. [SENIOR] How do you design class hierarchies that are resilient to changing requirements?
  28. [JUNIOR] What is the difference between a class and a structure?
  29. [JUNIOR] What are the advantages and disadvantages of OOP compared to procedural programming?
  30. [MID] What is the difference between association, aggregation, and composition relationships?
  31. [MID] What is operator overloading and what are its limitations?
  32. [MID] What is garbage collection and how does it work in OOP languages?
  33. [MID] What is exception handling in OOP and how does the try-catch-finally mechanism work?
  34. [SENIOR] What are design patterns, how do they relate to OOP, and can you explain the Singleton, Factory, and Observer patterns?
  35. [SENIOR] What is the Template Method pattern and how does it leverage inheritance and polymorphism?
  36. [SENIOR] How does the Strategy pattern use polymorphism to achieve interchangeable algorithms?
  37. [SENIOR] What is the difference between cohesion and coupling, and how do they affect class design?
  38. [EXPERT] How do object layout, vtable dispatch, and memory alignment affect runtime performance in polymorphic code?
  39. [JUNIOR] What is the difference between procedural programming and object-oriented programming?
  40. [JUNIOR] How much memory does a class occupy versus an object?
  41. [MID] What is constructor chaining and how is it implemented?
  42. [MID] What is the difference between early binding and late binding?
  43. [MID] What are friend functions and friend classes, and when should they be used?
  44. [SENIOR] How do you balance the use of OOP features like inheritance with performance considerations in latency-sensitive systems?
  45. [SENIOR] How do you handle cross-cutting concerns like logging and caching in an OOP system without violating SOLID principles?
  46. [SENIOR] What is the Decorator pattern and how does it provide a flexible alternative to subclassing?
  47. [EXPERT] How does the expression problem manifest in OOP and what design techniques address it?
  48. [EXPERT] How do you design an object model that supports both serialization and versioning without breaking encapsulation?
  49. [EXPERT] What are the trade-offs between classical OOP inheritance and algebraic data types with pattern matching found in functional languages?
  50. [JUNIOR] What are some commonly used object-oriented programming languages?
  51. [MID] What is the difference between a concrete class, an abstract class, and an interface in a class hierarchy?
  52. [MID] What is a sealed or final class and why would you use one?
  53. [SENIOR] How does the concept of invariants relate to class design and encapsulation?
  54. [SENIOR] What are mixins and traits, and how do they offer an alternative to multiple inheritance?
  55. [EXPERT] How does metaprogramming and reflection interact with OOP principles, and what are the risks?
  56. [EXPERT] What is the Visitor pattern, how does it use double dispatch, and what are its limitations?
  57. [EXPERT] How do you design domain models that enforce business invariants at the type level using OOP constructs?
  58. [JUNIOR] What programming paradigms exist besides OOP?
  59. [SENIOR] How do you refactor a large class with too many responsibilities into smaller, well-designed classes?
  60. [EXPERT] How does the Curiously Recurring Template Pattern (CRTP) achieve static polymorphism and when is it preferable to virtual dispatch?
  61. [EXPERT] What are phantom types and how can they be used in OOP languages to enforce compile-time constraints?
  62. [EXPERT] How do different memory models and garbage collection strategies affect the design of concurrent object-oriented systems?