from abc import ABC, ABCMeta class AbstractClass1(ABC): def foo(self) -> None: ... c1 = AbstractClass1() class ConcreteClass1(AbstractClass1): ... cc1 = ConcreteClass1() class AbstractClass2(metaclass=ABCMeta): ... c2 = AbstractClass2() class ConcreteClass2(AbstractClass2): def bar(self) -> None: ... cc2 = ConcreteClass2()