private double realNumber;
private string stringValue;
Console.WriteLine("BaseClass - Default constructor");
public BaseClass(double realNumber, string stringValue)
this.realNumber = realNumber;
this.stringValue = stringValue;
Console.WriteLine("BaseClass - Parameterized constructor");
public void DisplayInfo()
Console.WriteLine($"Real Number: {realNumber}, String Value: {stringValue}");
class DerivedClass1 : BaseClass
private int integerValue;
public void InputData(int integerValue)
this.integerValue = integerValue;
public new void DisplayInfo()
Console.WriteLine($"Integer Value: {integerValue}");
class DerivedClass2 : BaseClass
private string additionalStringValue;
public static int StaticProperty { get; set; }
public static void StaticMethod()
Console.WriteLine("DerivedClass2 - Static Method");
public new void DisplayInfo()
Console.WriteLine($"Additional String Value: {additionalStringValue}");
BaseClass baseObj = new BaseClass(3.14, "Hello");
DerivedClass1 derivedObj1 = new DerivedClass1();
derivedObj1.InputData(42);
derivedObj1.DisplayInfo();
DerivedClass2 derivedObj2 = new DerivedClass2();
DerivedClass2.StaticProperty = 10;
DerivedClass2.StaticMethod();
derivedObj2.DisplayInfo();