properties, abstract classes, interfaces, design patterns, exception handling, and more.