title: Implementing inherited interface from a parent that has an inherited interface
body: <p>Suppose I have the following 3 interfaces (format is designed for brevity):</p>
  
  <pre><code>public interface ISecondary { }
  
  public interface ITertiary { }
  
  public interface IRoot
  {
      public ISecondary secondary
      public ITertiary tertiary
  }
  </code></pre>
  
  <p>I have the secondary and tertiary classes which inherit their respective interfaces (formatting is desinged for brevity):</p>
  
  <pre><code>public class Secondary : ISecondary { }
  
  public class Secondary2 : ISecondary { }
  
  public class Tertiary : ITertiary { }
  
  public class Tertiary2 : ITertiary { }
  </code></pre>
  
  <p>I would like to be able to impliment the implimented classes into the root class that impliments both interfaces, something like:</p>
  
  <pre><code>public class Root : IRoot
  {
      public Secondary secondary { get; set; }
      public Tertiary tertiary { get; set; }
      public string foo { get; set; } // This wouldn't need to be cross-compatible
  }
  
  public class Root2 : IRoot
  {
      public Secondary2 secondary { get; set; }
      public Tertiary2 tertiary { get; set; }
      public double bar { get; set; } // This wouldn't need to be cross-compatible either
  }
  </code></pre>
  
  <p>I would then want to do something like (sorry, reflection is not my strong suit):</p>
  
  <pre><code>Root root = new Root();
  // data is entered
  
  Root2 root2 = new Root(IRoot root)
  
  // Similar to how ObservableCollection can retrieve data
  // from a List of the same generic type. This constructor
  // would take data from the IRoot properties and put it into root2. 
  </code></pre>
  
  <p>So that all members of IRoot are transferred from root to root 2.</p>
  
  <p>Doing this in C# will lead to a matching-type error (CS0738).</p>
  
  <p>In other words (and I apologize if this is hard to understand) I'd like my root interface to use the signatures from the secondary and tertiary interfaces in the HAS-A relationship that my IRoot interface will have, but when implementing the Root class, I'd like to implement their respective inherited classes as well, and not have to use the actual interface.</p>
  
  <p>Thank you kindly for your time.</p>