10 Essential Object Oriented Concepts for Java Developers

Hello friends, I have written several OOP (Object Oriented Programming) concepts tutorials in past and I was thinking to bring them together so that anyone who wants to learn OOP basics can benefit from them easily. In this article, I will share with you my collection of OOP tutorials and OOP concepts interview questions, which will not only help you to understand four pillars of Object-Oriented programming like Abstraction, Encapsulation, Inheritance, and Polymorphism but also powerful design techniques of Aggregation, Association, and Composition, along with SOLID design principles, which are key to write flexible, extensible and object-oriented software. 

Top 30 OOP (Object Oriented Programming) Interview Questions Answers in Java

Java is an object-oriented programming language and you will see a lot of object-oriented programming concept questions in Java interviews. The classic questions like the difference between an interface and abstract class are always there but from the last couple of years more sophisticated questions based upon advanced design principles and patterns are also asked to check the OOP knowledge of the candidate. Though, Object-oriented programming questions are more popular on Java interviews for 1 to 3 years experienced programmers. 

Difference between Static and Dynamic binding in Java

Hello guys, if you are wondering what is difference between static and dynamic binding and how it affect your program execution in Java then you are at right place. When you call a method in Java, it is resolved either at compile time or at runtime, depending upon whether it's a virtual method or a static method. When a method call is resolved at compile time, it is known as static binding, while if method invocation is resolved at runtime, it is known as Dynamic binding or Late binding. Since Java is an object-oriented programming language and by virtue of that it supports Polymorphism. Because of polymorphism, a reference variable of type Parent can hold an object of type Child, which extends Parent.