жесть если честно, ради типа, котоырый будет исопльзоваться внутри в одной функции
У тебя есть фиксированные типы от которых ты можешь наследоваться один раз. Для всего остального есть либо обработки, либо модули для написания функций. ООП для функции которая будет использоваться один раз - это уже чето левое