So in most OOP languages static variables can also be called class variables, ie their value is shared among all instances of this class. For example, in my game I have a class
Bullet which is extended by
PinkBullet. I want these subclasses to have a “class” or “static” variable called
ammo so that I can keep track of the ammo count for that specific ammo type. But here is the catch: I want to be able to access this property through an instance of the subclass.
var bullet: GreenBullet = new GreenBullet() if (bullet.ammo <= 0) return; bullet.shoot(); bullet.ammo --;
I want ALL instances of
GreenBullet to be aware of this change to their ammo count.