- Obvious things
Objects/classes, fields (a.k.a. member variables), methods (a.k.a. member functions), subtype polymorphism and dynamic dispatch.
- Getting/setting/calling member by name
- Properties
- Property typing
- Property attributes/annotations
- Some way to extend class with new locally-visible properties and methods