class C {
   c = "!";

   constructor(symbole:string) {
      this.c = symbole;
     }

   Coo() {
      return this.c;
   }
 }

class B extends C {
    b = "world";

    constructor(subject:string, symbole:string) {
      super(symbole)
      this.b = subject;
     }

    Boo() {
       return this.b+this.Coo();
    }
  }

export class A extends B {
  a = "hello"

  constructor(msg:string, subject:string, symbole:string) {
   super(subject, symbole);
   this.a = msg
  }

  Aoo(space=" ") {
     return this.a+space;
  }

  toString() {
     return this.Aoo()+this.Boo()+this.Coo(); 
  }
}

let a = new A("Hello", "World", "?");
export const method_constructor = a.toString();
