Skip to main content
Course/Module 5/Topic 3 of 3Intermediate

Abstract Classes & Interfaces

Abstract classes and interfaces define contracts that other classes must follow. Abstract classes can have both abstract and concrete methods. Interfaces define only method signatures (prior to Java 8). They're essential for designing flexible, modular code.

45 minBy Priygop TeamLast updated: Feb 2026

Abstract Classes & Interfaces

Example
// Abstract class — cannot be instantiated directly
abstract class Animal {
    String name;
    
    Animal(String name) {
        this.name = name;
    }
    
    // Abstract method — subclasses MUST implement
    abstract String sound();
    
    // Concrete method — shared by all subclasses
    void display() {
        System.out.println(name + " says: " + sound());
    }
}

// interface — a contract of methods
interface Trainable {
    void train(String trick);
    boolean isTrainable();
}

interface Swimmable {
    void swim();
}

// Implementing abstract class + interfaces
class Dog extends Animal implements Trainable, Swimmable {
    Dog(String name) {
        super(name);
    }
    
    @Override
    String sound() { return "Woof!"; }
    
    @Override
    public void train(String trick) {
        System.out.println(name + " learned: " + trick);
    }
    
    @Override
    public boolean isTrainable() { return true; }
    
    @Override
    public void swim() {
        System.out.println(name + " is swimming!");
    }
}

class Cat extends Animal {
    Cat(String name) {
        super(name);
    }
    
    @Override
    String sound() { return "Meow!"; }
}

public class AbstractDemo {
    public static void main(String[] args) {
        Dog dog = new Dog("Rex");
        Cat cat = new Cat("Luna");
        
        dog.display();
        dog.train("shake");
        dog.train("roll over");
        dog.swim();
        System.out.println("Trainable: " + dog.isTrainable());
        
        System.out.println();
        cat.display();
    }
}

Try It Yourself: Media Player interface

Try It Yourself: Media Player interfaceJava
Java Editor
✓ ValidTab = 2 spaces
Java|65 lines|1583 chars|✓ Valid syntax
UTF-8

Quick Quiz: Abstract & Interfaces

Chat on WhatsApp
Priygop - Leading Professional Development Platform | Expert Courses & Interview Prep