title: Subscribing Children class from observable has no parent fields
body: <p>I have observable that gets some data from server. This data is stored just in public fields of DocGroup object.</p>
  
  <pre><code>export class DocGroup extends Selectable {
    public uuid;
    public name;
    public set_uuid;
    public order;
    public strings;
  }
  </code></pre>
  
  <p>I need this object to have some extra functionality so it extends class called Selectable, which allows my object to be selected for further processing. </p>
  
  <pre><code>export class Selectable {
  
    public readonly isSelectable = true;
    public selection_parent: Selectable;
    protected _selected: number = -1;
  
    public select(state?: boolean) {
      // Some body
    }
  
    // And so on 
  }
  </code></pre>
  
  <p><strong>The problem</strong> is that this object has no parent fields and methods when parsed with JSON despite it's type is said. When i try to call it's select() method i get exception <em>"group.select is not a function"</em>. Object is loaded like this: </p>
  
  <pre><code>public getAll(contract: Contract): Observable&lt;DocGroup[]&gt; {
    const url = this.baseUrl + 'getAll';
    const response: Observable&lt;DocGroup[]&gt; = this.http.post&lt;DocGroup[]&gt;(url,
      {"contract_uuid": contract.uuid}, this.httpOptions);
    return response;
  }
  </code></pre>
  
  <p>Also after i printed object to console i found out that it has no parent fields too:</p>
  
  <pre><code>{
    "uuid":"3fe5329a-888c-4a59-e99b-aa5b8c5791dc",
    "set_uuid":"6c8d33c3-c147-4d36-db0d-e41f7d9b87b3",
    "order": null,
    "name":"Group 1"
  }
  </code></pre>
  
  <p>So how can i get my object via HTTP having all methods and fields in place? Maybe Selectable could somehow be an interface and i'm breaking some design patterns so that's why this problem occurs?</p>
  
  <p>I've already tried to adjust my object with Object.assign(), but it only added missing fields, not methods.</p>