abstract class MyClass { public const int Param1Default = 4; public const int Param2Default = 10; int Param1 { get; set; } int Param2 { get; set; } public MyClass(int param1 = Param1Default, int param2 = Param2Default) { this.Param1 = param1; this.Param2 = param2; } } class Class1 : MyClass { int Param3 { get; set; } public Class1(int param1 = MyClass.Param1Default, int param2 = MyClass.Param1Default, int param3 = 2) : base(param1, param2) { this.Param3 = param3; } } public class Test { public static void Main() { var x = new Class1(7); } }