User
Concurrency
Encapsulation
Polymorphism
Correct operations on compatible data types
Type checking occurs at compile-time
To manage memory automatically
Higher-order functions
Inheritance
Exception handling