---
id: 67e94810c804b901c6001b9c
title: Task 46
challengeType: 19
dashedName: task-46
lang: en-US
---

<!-- READING -->

# --instructions--

Read the text and answer the question below.

# --questions--

## --text--

After his conversation with Sophie, Mark decided to write to his mentor David to reflect on what he had learned.

`Hi David,`

`I just wanted to share a quick update. After sitting in on a recent code review, I finally feel like I'm starting to understand some key programming concepts.`

`Sophie explained terms like polymorphism, encapsulation, inheritance, and abstraction. For example, I saw how encapsulation helps with keeping details hidden and making the code easier to work with. I also noticed polymorphism in a method that changes behavior depending on the input.`

`I tried writing a small class using these ideas — focusing on clean code structure, reusing properties and methods, and simplifying functionality.`

`Does it mean I'm on the right track if I can explain these terms and apply them in a simple project?`

`Thanks for explaining these things over time. I appreciate the explanations and all your support.`

`Best,`

`Mark`

What can change behavior based on input or context?

## --answers--

Polymorphism

---

Encapsulation

### --feedback--

Encapsulation is about hiding details, not changing behavior.

---

Abstraction

### --feedback--

Abstraction focuses on reducing complexity, not behavior changes.

---

Inheritance

### --feedback--

Inheritance is about reusing structure, not about dynamic behavior.

## --video-solution--

1

# --explanation--

To find the correct answer, focus on the text where Mark mentions method that `changes behavior depending on the input`.

He is describing polymorphism, which allows different behavior depending on input or context.
