> For the complete documentation index, see [llms.txt](https://raviram.gitbook.io/c-programing/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://raviram.gitbook.io/c-programing/oop-animals/introduction.md).

# Introduction

### What is the series about?

* &#x20;Using a practical application, like a game, helps understand object-oriented principles better and makes them relatable.
* Focusing on the "why" behind object-oriented programming is essential, as it is often overlooked.
* The example game simplifies the concepts by using real-world animal entities and their behaviors.
* The series <mark style="background-color:blue;">gradually improves the code by incorporating object-oriented principles</mark>, ensuring maintainability and extensibility.
* UI and graphics are not the focus; instead, the emphasis is on building a hierarchy and classification of entities.
* The concepts discussed in the series are applicable to any programming language that supports object-oriented programming.
* The example game can be <mark style="background-color:blue;">helpful for interview preparation</mark>, as object-oriented programming is a common topic.

### Requirements of the fictitious game:

```
The attributes and behaviours of the Animals!

Cat
    Has a name
    can eat
    can climb on roofs

Dog
    Has a name
    can eat
    can climb on steps

Parrot
    Has a name
    can eat
    can climb on trees
    can fly

What the App must do for now:
    Upon starting all the animals must do what they know!
    
Later
    The parrot can sing, 
    A new animal, an eagle, needs to be introduced. Eagle cannot sing!
```
