Если вам нужно переопределить переменную экземпляра, вы почти наверняка унаследуете от класса worng.
В некоторых языках вы можете скрыть переменную экземпляра, указав новую:
class A has variable V1 of type X;
class B inherits from A, but reintroduces V1 of type Y.
Методы класса A все еще могут получить доступ к исходному V1. Методы класса B могут получить доступ к новому V1. И если они хотят получить доступ к оригиналу, они могут привести себя к классу А (как вы видите, грязное программирование вызывает более грязное программирование).
Лучшее решение - найти другое имя для переменной.