Generalization connects a sub-class to a super-class. It’s another name for inheritance. Realization connects a class to an interface. It’s another name for implementation.
Generalization is equivalent to public inheritance in C++ or ‘extends’ in java. It implies inheritance of interface and implementation.
Realizes is equivalent to ‘implements’ in java. It represents conformance to an interface as opposed to inheriting anything.