Imagine there is an abstract class called Vehicle, the class should have an undefined field or method for the number of wheels the vehicle is suppose to have! This class has sub-classes such as Car, Motorcycle and Truck that implement the number of wheels, however this number is exactly the same, it is shared, across all instances of the sub-classes, but not all classes, it's unique to but shared across all instances of a sub-class. This number of wheels, can also be accessed without the need for instantiation of any sub-class that extends the abstract class called Vehicle? Some say including both the static and the abstract modifier, however firstly you cannot have the abstract modifier on a field, and static means that something is shared across all sub-classes, not only instances, which is not object oriented. How can I do this?