import { Component , Input } from '@angular/core' ; deprecated @ Component ( { template : '' } ) export abstract class MotherComponent { deprecated abstract myProp : string ; constructor ( ) { } deprecated abstract myMethod ( ) ; } @ Component ( { template : '' } ) export class SonComponent extends MotherComponent { myProp : string ; constructor ( ) { super ( ) ; } myMethod ( ) { return 'Implementation A' ; } } @ Component ( { template : '' } ) export class GrandsonComponent extends SonComponent { constructor ( ) { super ( ) ; } myMethod ( ) { return 'Implementation B' ; } }