Disclosure: This article may contain affiliate links. When you purchase, we may earn a commission.

Polymorphism, Overloading, and Overriding in Java and Object Oriented Programming?

Polymorphism vs Overloading vs Overriding
Someone asked me the other day,  what are the difference between Polymorphism and Overriding in Java and the similar difference between Polymorphism and Overloading. After explaining to him personally, I thought to write a blog post about it and here we are. Well, they are not two different things, Polymorphism is an object-oriented or OOP concept much like Abstraction, Encapsulation, or Inheritance which facilitates the use of the interface and allows Java program to take advantage of dynamic binding in Java. Polymorphism adds flexibility to your code which makes it more extensible and maintainable. 

Default Methods and Multiple Inheritance in Java 8

Ever since Java 8 introduced default and static methods in JDK 8, it's become possible to define non-abstract methods in interfaces. Since Java, one class can implement multiple interfaces and because there can be concrete methods in interfaces, the diamond problem has surfaced again. What will happen if two interfaces have methods o the same name and a Java class inherit from it? Many Java programmer also asks me the question that, is Java 8 is also supporting multiple inheritances of classes? Well, it's not but the doubt is genuine because the interface with methods is similar to an abstract class or in that any Class in Java.

12 Advanced Java programming Books for Experienced Programmers - Part 2

This is the second part of 12 must-reads advanced Java programming books for intermediate and experienced Java programmers. In the first part, I have shared books to learn and master concurrency, performance, design patterns, and Java collection framework, which is essential for every Java developer irrespective of experience. On the other hand, In this article, I will talk about more advanced concepts, like security, Java 8, best practices, etc., which are more important for senior Java developers. As an experienced Java developer, a lot is expected of you. Junior developers look at you for guidance, and project managers look at you to solve problems and bail them out at critical junctures.