hardMultiple Select
FC0-U71 Practice Question: Which TWO of the following are characteristics of…
Which TWO of the following are characteristics of object-oriented programming (OOP)?
⚠ Common exam trap
CompTIA often tests the distinction between OOP characteristics and general programming concepts, so candidates mistakenly pick recursion or top-down design because they are common in programming but not exclusive to OOP.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Inheritance
Inheritance (C) is a core OOP characteristic because it lets a class derive attributes and methods from a parent class, promoting code reuse and hierarchical relationships between types. Encapsulation (D) is also fundamental to OOP because it bundles data and the methods that operate on that data within a class, restricting direct access through mechanisms like private/protected members and public interfaces. The other options are not defining OOP traits: top-down design (A) is a structured/procedural design approach, global functions (B) conflict with encapsulation and are typical of procedural programming, and recursion (E) is a general programming technique usable in any paradigm, not specific to OOP.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Top-down design
Why it's wrong here
Top-down design is a structured-programming methodology that decomposes a problem into subroutines, not an OOP characteristic. It tempts because both approaches plan before coding, but OOP is defined by encapsulation, inheritance, polymorphism and abstraction, with design typically object- and bottom-up oriented.
- ✗
Use of global functions
Why it's wrong here
Global functions sit outside any class, contradicting encapsulation, which binds data and behaviour into objects. It tempts because procedural languages such as C rely on them, and OOP code may still call library functions, but the paradigm's defining characteristics are encapsulation, inheritance, polymorphism and abstraction.
- ✓
Inheritance
Why this is correct
Inheritance lets a subclass reuse and extend a parent class's fields and methods, directly satisfying the OOP characteristic of hierarchical code reuse. It defines an "is-a" relationship between classes, so shared behaviour lives in one place while specialised behaviour is overridden, which is precisely what the question asks for.
- ✓
Encapsulation
Why this is correct
Encapsulation binds data with the methods that operate on it, exposing only a controlled interface. This satisfies the OOP requirement for bundling state and behaviour while restricting direct external access, unlike procedural programming's freely reachable variables. It is a defining pillar alongside inheritance, polymorphism and abstraction.
- ✗
Recursion
Why it's wrong here
Recursion is a general algorithmic technique — a function calling itself — available in procedural and functional languages alike, and is not an OOP pillar. It tempts because recursive methods appear constantly in OOP code, yet encapsulation, inheritance, polymorphism and abstraction define the paradigm, not recursion.
Go deeper
Related to this question
About these practice questions
This FC0-U71 question is part of Courseiva's 988-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This FC0-U71 practice question is part of Courseiva's free CompTIA certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the FC0-U71 exam.