"Well, hello, Amigo! Good news! I'm wrapping up work on a super accurate predictor!"

"Cool. What does it do? Will it predict when I'll become a cool programmer?"

"Hey, don't rush, my young robot! I didn't look that far ahead, but I already know that…"


"…I saw that you would come to me with questions about the topics you studied this week. So, I prepared additional materials for you in advance: they'll help you figure everything out."

How to use polymorphism

"Polymorphism's main advantage is flexibility. On the one hand, you can work with multiple data types as if they were the same type. On the other hand, you can still preserve objects' specialized behavior. When do you need to cast to a common type and when do you need specific characteristics? We'll talk about this.

How method overriding works

You're already familiar with method overloading. It's time to learn about overriding classes. This will help you when you need a common method to perform different actions depending on the class it is called in. Everything is possible! The important thing is to know how :)

Why interfaces are necessary in Java

This lesson provides a relaxed and detailed description of what interfaces are and why they appeared in the language. And you'll learn about popular Java interfaces. Prepare yourself! This topic has a sequel!

Default methods in interfaces

Every version of Java differs from those that came before. Version eight introduced the concept of default methods in interfaces. This lets you define default methods and implement them inside an interface. You'll find examples and explanations in this lesson.

Specific examples of abstract classes in Java

You've become acquainted with abstract classes. You already know that they're like 'blanks' for your future classes. But do all methods of such a class have to be abstract? And why doesn't Java have multiple inheritance? Here's a 'tip' from my super accurate predictor: the material from this lesson will better prepare you for the next level.