3.1 Lesson Outcomes
After completing this lesson, learners will be able to:
- Define abstract classes in Java.
- Create abstract methods.
- Extend abstract classes.
- Override abstract methods.
- Apply abstraction principles in Java applications.
3.2 Overview
Abstract classes are special classes that cannot be instantiated directly. They are used as base classes for inheritance and may contain both:
- abstract methods,
- and concrete methods.
Abstract methods do not contain implementation and must be overridden by subclasses.
This lesson introduces learners to practical abstraction concepts in Java programming.
Abstract classes are important in:
- object-oriented programming,
- software architecture,
- inheritance,
- and reusable application design.
Understanding abstract classes is important because abstraction is one of the core principles of object-oriented programming.
PA1101 — Create an Abstract Class
Abstract classes are declared using the abstract keyword.
Java Example:
abstract class Animal {
}
Practical Activity
Learners must:
- create abstract classes,
- apply correct syntax,
- and save Java source files correctly.
PA1102 — Declare Abstract Methods
Abstract methods do not contain implementation.
Java Example:
abstract class Animal {
abstract void makeSound();
}
Practical Activity
Learners must:
- declare abstract methods,
- use correct method syntax,
- and identify abstract behaviour.
PA1103 — Create Concrete Methods in an Abstract Class
Abstract classes may also contain normal methods.
Java Example:
abstract class Animal {
void sleep() {
System.out.println(“Sleeping”);
}
}
Practical Activity
Learners must:
- create concrete methods,
- display method output,
- and combine abstract and normal methods.
PA1104 — Extend an Abstract Class
Subclasses inherit from abstract classes using extends.
Java Example:
class Dog extends Animal {
void makeSound() {
System.out.println(“Bark”);
}
}
Practical Activity
Learners must:
- create subclasses,
- extend abstract classes,
- and override abstract methods.
PA1105 — Override Abstract Methods
Abstract methods must be implemented in subclasses.
Java Example:
class Cat extends Animal {
void makeSound() {
System.out.println(“Meow”);
}
}
Practical Activity
Learners must:
- override abstract methods,
- display subclass behaviour,
- and test method execution.
PA1106 — Instantiate Subclasses
Abstract classes cannot be instantiated directly.
Java Example:
Dog dog = new Dog();
dog.makeSound();
Practical Activity
Learners must:
- instantiate subclasses,
- call overridden methods,
- and display object output.
PA1107 — Create Complete Abstract Class Program
Abstract classes are used in complete object-oriented applications.
Java Example:
abstract class Animal {
abstract void makeSound();
void sleep() {
System.out.println(“Sleeping”);
}
}
class Dog extends Animal {
void makeSound() {
System.out.println(“Bark”);
}
}
public class AbstractExample {
public static void main(String[] args) {
Dog dog = new Dog();
dog.makeSound();
dog.sleep();
}
}
Importance of Abstract Classes
Abstract classes support:
- abstraction,
- inheritance,
- reusable code,
- and scalable software design.
3.5 Key Notes / Summary
- Abstract classes cannot be instantiated directly.
- Abstract methods do not contain implementation.
- Subclasses override abstract methods.
- Abstract classes support inheritance and abstraction.
- Abstract classes may contain normal methods.
- Abstraction improves software structure and flexibility.