You should look at the Decorator Pattern , which allows you to extend the class by composition.
eg. This private class A that implements InterfaceA:
public interface InterfaceA { int A {get; set;} } public sealed Class A : InterfaceA { public int A {get;set;} }
You can extend InterfaceA and then use decorator class B to encapsulate an instance of class A and provide additional methods.
public interface MyExtendedInterfaceA : InterfaceA { int B {get;set} } public class B : MyExtendedInterfaceA { private InterfaceA _implementsA = new A(); public int A { get { return _implementsA.A; } set { _implementsA.A = value; } } public int B {get; set;} }
Alternatively, a class C decorator can add a whole new interface:
public interface InterfaceC { int MethodC(); } public class C : InterfaceA, InterfaceC { private InterfaceA _implementsA = new A(); public int A { get { return _implementsA.A; } set { _implementsA.A = value; } } public int MethodC() { return A * 10; } }
source share