class MyBaseClass //基类 { public void Print() { Console.WriteLine("This is the base class"); } } class MyDerivedClass : MyBaseClass //派生类 { new public void Print() { Console.WriteLine("This is the derived class"); } } internal class Program { static void Main(string[] args) { MyDerivedClass myDerived = new MyDerivedClass(); MyBaseClass myBaseClass = (MyBaseClass)myDerived; //转换成基类 myDerived.Print(); //从派生类部分调用Print方法 myBaseClass.Print(); //从基类部分调用Print方法 } }运行结果如下:
class MyBaseClass //基类 { virtual public void Print() { Console.WriteLine("This is the base class"); } } class MyDerivedClass : MyBaseClass //派生类 { override public void Print() { Console.WriteLine("This is the derived class"); } } class SecondDerivedClass : MyDerivedClass //派生类 { override public void Print() { Console.WriteLine("This is the second derived class"); } } internal class Program { static void Main(string[] args) { SecondDerivedClass myDerived = new SecondDerivedClass(); MyBaseClass myBaseClass = (MyBaseClass)myDerived; //转换成基类 myDerived.Print(); //从派生类部分调用Print方法 myBaseClass.Print(); //从基类部分调用Print方法 } }运行结果如下所示:
class MyBaseClass //基类 { virtual public void Print() { Console.WriteLine("This is the base class"); } } class MyDerivedClass : MyBaseClass //派生类 { override public void Print() { Console.WriteLine("This is the derived class"); } } class SecondDerivedClass : MyDerivedClass //派生类 { new public void Print() { Console.WriteLine("This is the second derived class"); } } internal class Program { static void Main(string[] args) { SecondDerivedClass myDerived = new SecondDerivedClass(); MyBaseClass myBaseClass = (MyBaseClass)myDerived; //转换成基类 myDerived.Print(); //从派生类部分调用Print方法 myBaseClass.Print(); //从基类部分调用Print方法 } }运行结果如下所示:
class MyBaseClass //基类 { private int _myInt = 5; virtual public int MyProperty { get { return _myInt; } } } class MyDerivedClass : MyBaseClass //派生类 { private int _myInt = 10; override public int MyProperty { get { return _myInt; } } } internal class Program { static void Main(string[] args) { MyDerivedClass myDerived = new MyDerivedClass(); MyBaseClass myBaseClass = (MyBaseClass)myDerived; //转换成基类 Console.WriteLine(myDerived.MyProperty); Console.WriteLine(myBaseClass.MyProperty); } }
运行结果如下所示: