Bird
Raised Fist0
Javaprogramming~5 mins

OOP principles overview in Java - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is Encapsulation in OOP?
Encapsulation means keeping data (variables) and methods (functions) that work on the data together inside a class. It hides the internal details and only exposes what is necessary.
Click to reveal answer
beginner
Define Inheritance in simple terms.
Inheritance allows a new class to get properties and behaviors from an existing class. It helps reuse code and create a hierarchy.
Click to reveal answer
intermediate
What does Polymorphism mean in OOP?
Polymorphism means one action can behave differently based on the object it is acting on. For example, the same method name can do different things in different classes.
Click to reveal answer
intermediate
Explain Abstraction with an example.
Abstraction means showing only the important details and hiding the complex inner workings. For example, when you drive a car, you use the steering wheel without knowing how it works inside.
Click to reveal answer
beginner
List the four main OOP principles.
The four main OOP principles are:
1. Encapsulation
2. Inheritance
3. Polymorphism
4. Abstraction
Click to reveal answer
Which OOP principle means hiding internal details and showing only necessary parts?
AInheritance
BAbstraction
CPolymorphism
DEncapsulation
What does inheritance allow a class to do?
AHide data from other classes
BCreate unrelated objects
CChange method names dynamically
DReuse code from another class
Polymorphism allows methods to:
ACreate new classes from scratch
BHide data inside a class
CHave the same name but behave differently
DPrevent code reuse
Encapsulation is best described as:
ACombining data and methods in one unit
BUsing inheritance to extend classes
CChanging method behavior at runtime
DShowing only important details
Which principle helps in creating a class hierarchy?
AInheritance
BAbstraction
CPolymorphism
DEncapsulation
Explain the four main OOP principles and give a simple example for each.
Think about how classes hide data, reuse code, behave differently, and hide complexity.
You got /4 concepts.
    Why is encapsulation important in programming? How does it help in real-life coding?
    Consider how keeping things private helps avoid mistakes.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which of the following is NOT one of the four main principles of Object-Oriented Programming (OOP)?
      easy
      A. Encapsulation
      B. Inheritance
      C. Polymorphism
      D. Compilation

      Solution

      1. Step 1: Recall the four main OOP principles

        The four main principles are Encapsulation, Inheritance, Polymorphism, and Abstraction.
      2. Step 2: Identify the option not in the list

        Compilation is a process of converting code to machine language, not an OOP principle.
      3. Final Answer:

        Compilation -> Option D
      4. Quick Check:

        OOP principles exclude Compilation [OK]
      Hint: Remember the four OOP pillars: E, I, P, A [OK]
      Common Mistakes:
      • Confusing compilation with abstraction
      • Mixing OOP principles with programming processes
      2. Which Java keyword is used to inherit properties from a parent class?
      easy
      A. implements
      B. inherits
      C. extends
      D. super

      Solution

      1. Step 1: Identify the keyword for class inheritance in Java

        Java uses the keyword extends to inherit from a parent class.
      2. Step 2: Differentiate from other keywords

        implements is for interfaces, super accesses parent members, and inherits is not a Java keyword.
      3. Final Answer:

        extends -> Option C
      4. Quick Check:

        Inheritance keyword = extends [OK]
      Hint: Use 'extends' to inherit classes in Java [OK]
      Common Mistakes:
      • Using 'implements' for class inheritance
      • Confusing 'super' with inheritance keyword
      3. What will be the output of the following Java code?
      class Animal {
        void sound() { System.out.println("Animal sound"); }
      }
      class Dog extends Animal {
        void sound() { System.out.println("Bark"); }
      }
      public class Test {
        public static void main(String[] args) {
          Animal a = new Dog();
          a.sound();
        }
      }
      medium
      A. Bark
      B. Animal sound
      C. Compilation error
      D. Runtime error

      Solution

      1. Step 1: Understand method overriding and polymorphism

        The object a is declared as Animal but refers to a Dog instance. The sound() method is overridden in Dog.
      2. Step 2: Determine which method runs at runtime

        Java uses dynamic method dispatch, so the Dog's sound() method runs, printing "Bark".
      3. Final Answer:

        Bark -> Option A
      4. Quick Check:

        Overridden method runs = Bark [OK]
      Hint: Overridden methods run from actual object type [OK]
      Common Mistakes:
      • Thinking declared type method runs
      • Expecting compilation or runtime errors
      4. Identify the error in the following Java code snippet:
      class Vehicle {
        private int speed;
        public int getSpeed() { return speed; }
      }
      class Car extends Vehicle {
        public void setSpeed(int speed) { this.speed = speed; }
      }
      medium
      A. Cannot access private field 'speed' directly in subclass
      B. Cannot override getSpeed() method
      C. Missing constructor in Car class
      D. No error, code is correct

      Solution

      1. Step 1: Check access to private fields in subclass

        The field speed is private in Vehicle, so Car cannot access it directly.
      2. Step 2: Analyze the setSpeed method in Car

        Car's setSpeed tries to assign this.speed, which is not accessible, causing a compile error.
      3. Final Answer:

        Cannot access private field 'speed' directly in subclass -> Option A
      4. Quick Check:

        Private fields inaccessible in subclass [OK]
      Hint: Private fields are not visible in subclasses [OK]
      Common Mistakes:
      • Assuming private fields are inherited
      • Ignoring access modifiers
      5. You want to design a Java class hierarchy where different shapes (Circle, Rectangle) can calculate their area. Which OOP principle best supports writing a method double getArea() in a base class or interface and having each shape provide its own implementation?
      hard
      A. Encapsulation
      B. Polymorphism
      C. Abstraction
      D. Inheritance

      Solution

      1. Step 1: Understand the scenario of method overriding

        Each shape class provides its own version of getArea(), meaning the method behaves differently depending on the object.
      2. Step 2: Identify the OOP principle for multiple forms of a method

        This is Polymorphism, where the same method name works differently in subclasses.
      3. Final Answer:

        Polymorphism -> Option B
      4. Quick Check:

        Different behaviors for same method = Polymorphism [OK]
      Hint: Same method, different behaviors = Polymorphism [OK]
      Common Mistakes:
      • Confusing abstraction with polymorphism
      • Thinking inheritance alone handles this