In order for @properties to operate thoroughly the class should be a subclass of object. when the class will not be a subclass of object then the first time you are trying access the setter it essentially helps make a different attribute While using the shorter name as an alternative https://anandniketansohnagurgaon.blogspot.com