Interface Inheritance, Dynamic
Method Dispatch & Abstract
Classes
According to BTech 2nd Semester
Syllabus
Presented by: [Your Name]
[University Name]
Introduction
• • Object-Oriented Programming (OOP) is a
paradigm based on objects.
• • Key concepts: inheritance, polymorphism,
abstraction, and encapsulation.
• • Java supports OOP through classes,
interfaces, and inheritance.
• • This presentation covers interface
inheritance, dynamic method dispatch, and
abstract classes.
Interface Inheritance
• • Interface inheritance allows a class to inherit
from multiple interfaces.
• • Interfaces declare methods without
implementing them (until Java 8).
• • Syntax:
• interface A { void display(); }
• interface B extends A { void show(); }
• • A class can implement multiple interfaces.
Interface Inheritance Example
• • Real-life example: A printer can be Printable
and Scannable.
• interface Printable { void print(); }
• interface Scannable { void scan(); }
• class MultiFunctionPrinter implements
Printable, Scannable {
• public void print()
{ [Link]("Printing..."); }
Dynamic Method Dispatch
• • Also known as runtime polymorphism.
• • Method call is resolved at runtime, not
compile time.
• • Achieved through method overriding.
• Example:
• class Animal { void sound()
{ [Link]("Animal sound"); } }
• class Dog extends Animal { void sound()
{ [Link]("Dog barks"); } }
Use Case of Dynamic Dispatch
• • Enables flexible and extensible code.
• • Useful in frameworks, UI systems, and plug-
in architectures.
• • Example: Drawing shapes in a graphics
editor using a base class Shape.
• • Actual draw method depends on the object
type (Circle, Rectangle, etc.).
Abstract Class
• • An abstract class cannot be instantiated.
• • It may contain abstract (no implementation)
and concrete methods.
• • Used as a base class for subclasses.
• Example:
• abstract class Shape {
• abstract void draw();
• void display() { [Link]("Shape
displayed"); }
Abstract Class Example
• abstract class Animal {
• abstract void makeSound();
• }
• class Cat extends Animal {
• void makeSound()
{ [Link]("Meow"); }
• }
Abstract Class vs Interface
• Feature | Abstract Class |
Interface
• --------------------------|------------------------|--------
------------------
• Methods | Abstract + Concrete |
Abstract only (Java 7)
• Inheritance | Single | Multiple
• Constructors | Yes | No
• Access Modifiers | Any | Public
only
Conclusion
• • Interface Inheritance allows multiple
inheritance.
• • Dynamic Method Dispatch enables runtime
polymorphism.
• • Abstract classes serve as partial blueprints.
• • Choosing between abstract class and
interface depends on design requirements.
• • These concepts are foundational to Java and
OOP.