Skip to content

abstract method

An abstract method is a method in an abstract base class (ABC) that you mark as abstract rather than making it fully concrete.

You mark abstract methods with the @abstractmethod decorator from the abc module. You use them to define a common interface that all concrete subclasses must implement. If any abstract methods remain unimplemented in a subclass, Python prevents you from instantiating that class, helping you catch design mistakes early.

You can still provide a default implementation inside an abstract method. Subclasses must override it to become instantiable, but they can call super() to reuse the shared behavior.

Example

Language: Python
>>> from abc import ABC, abstractmethod

>>> class Animal(ABC):
...     @abstractmethod
...     def speak(self):
...         """Return the sound this animal makes."""
...         ...
...

>>> Animal()
Traceback (most recent call last):
    ...
TypeError: Can't instantiate abstract class Animal
⮑ without an implementation for abstract method 'speak'

>>> class Dog(Animal):
...     def speak(self):
...         return "Woof!"
...
>>> Dog().speak()
'Woof!'

Tutorial

Implementing Interfaces in Python: ABCs and Protocols

Learn how to implement interfaces in Python using abstract base classes, Protocols, and duck typing, and enforce method contracts cleanly.

advanced python

For additional information on related topics, take a look at the following resources:


By Leodanis Pozo Ramos • Updated March 10, 2026 • Reviewed by Dan Bader