OOP Basics · Lesson 2/14
14%
⏱ 10–15 min

Object-Oriented Programming (OOP) Concepts

The Object-Oriented Programming (OOP) concepts are encapsulation, inheritance, and polymorphism.

1. Encapsulation

The main principles of the encapsulation:

  • The instance variables should be kept protected (with an access modifier, usually private).
  • The instance variable should be accessed only by public accessor methods.
  • The accessor methods should follow the JavaBeans naming convention.

2. Inheritance

The inheritance relationships are implemented in Java by extending a class. Java supports only single inheritance - a class cannot extend more than one class, but a class can have multiple ancestors. The two most general reasons to use inheritance are:

  • Promoting code reuse means that methods with generic functionality don't have to be reimplemented.
  • Using polymorphism

2.1 IS-A Relationship

The IS-A relationship is based on class inheritance or interfaces implementation. In Java, it is expressed using the keywords extends and implements.

2.2 HAS-A Relationship

The HAS-A relationship is based on usage. A class A HAS-A B if code in class A has a reference to an instance of class B.

3. Polymorphism

Polymorphism means "many forms". If a Java object can pass more than one IS-A test, it can be considered polymorphic.

Read in more details on Polymorphism.

  • A reference variable can be of only one type, and that type cannot be changed (but the object it references can change).
  • A reference is a variable, so it can be reassigned to other objects.
  • A reference variable's type determines the methods that can be called on the object the variable is referencing.
  • A reference variable can refer to any object of the same type as the declared reference, or to any subtype of the declared type.
  • A reference variable can be declared as a class type or an interface type. If the variable is declared as an interface type, it can reference any object of any class that implements the interface.
  • Polymorphic method invocations apply only to instance methods, not to static methods or variables.

Java Core

1. Java Introduction
2. Run Your First Java App
3. Java Syntax
4. Java Operations
5. Operators
6. Arrays
7. Sorting Algorithms
8. Git & GitHub
9. OOP Basics
10. Lambda Expressions
11. Stream API
12. Inner Classes and Exceptions
‹ Previous lesson Next lesson ›