Being derived from Vehicle, it is a Vehicle. OOP 101.
Very little in the real world follows the object oriented design model.
The first object oriented language was SIMULA, and it was developed for doing simulations -- that is, modelling the real-world.
Firmware is software that is stored in Read-Only memory or EEPROM's (using all definitions). By nature firmware is always software.
Please tell me you don't really do OOP, otherwise somebody right now is very sorry they hired you. Due to its nature, firmware has some things that the general term "software" in general doesn't have. Therefore it's not a good idea to just use the Software class to define firmware. It's better to derive another class from Software that can hold the extra information and have new methods, such as "flash."
OOP does not work in the real world. Taxis are not derived from Vehicle, they are a Vehicle. OOP is conceptual - Taxis are not.
SIMULA was used to model processes, not the real world.
A taxi does not inherit from the class Vehicle. A taxi is a vehicle and there is no class Vehicle in the real world. OO is a abstruction, not a real world model.
Please tell me you don't really do OOP, otherwise somebody right now is very sorry they hired you.
Don't be silly. We are not debating OO software design - you are trying to apply OO concepts where they do not work.
Please cut the crap with the personal insults.
Due to its nature, firmware has some things that the general term "software" in general doesn't have.
I grow tired of this endless changing of the subject. You claimed firmware was hardware. You were wrong. The debate was whether firmware is software or hardware. You claimed it was hardware and that position has been shown to be false.