Here is a great post that described the new adition to the angular 2 framework, starting with version 2.3 .
just to put it in a nutshell:
“Component Inheritance in Angular 2.3 covers all of the following:
- Metadata (decorators): metadata (e.g.
@Input()
,@Output
), etc. defined in a derived class will override any previous metadata in the inheritance chain otherwise the base class metadata will be used. - Constructor: the base class constructor will be used if the derived class doesn’t have one, this mean that all the services you injected in parent constructor will be inherited to child component as well.
- Lifecycle hooks: parent lifecycle hooks (e.g.
ngOnInit
,ngOnChanges
) will be called even when are not defined in the derived class.
Component inheritance DO NOT cover templates and styles. Any shared DOM or behaviours must be handled separately.”