How is generalization implemented in Object Oriented programming languages ?

How is generalization implemented in Object Oriented programming languages ?

A. Inheritance
B. Polymorphism
C. Encapsulation
D. Abstract Classes