Grundsätzlich ist es kein gutes
OOP, eine Eigenschaft mit einer konkreten Bedeutung in einer Kindklasse zu überschreiben und ihm dabei eine andere Bedeutung zu geben ('Liskov Prinzip', das 'L' in SOLID).
Vielleicht solltest Du eine Basisklasse ohne Attribute einführen und die Attribute erst in den unterschiedlichen Ableitungen setzen.