1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace polymorphic
- {
- //自定义类
- class MyClass1
- {
- private int x = 0; //定义int型变量,作为加数
- private int y = 0; //定义int型变量,作为被加数
- //加数
- public int X
- {
- get {
- return x;
- }
- set {
- x = value;
- }
- }
- //被加数
- public int Y
- {
- get
- {
- return y;
- }
- set
- {
- y = value;
- }
- }
- //定义一个virtual类型的方法,以便在子类(派生类)中重写该方法
- //加法运算的和
- public virtual int Add()
- {
- return X + Y;
- }
- }
- //自定义类,该类继承自MyClass1
- class MyClass2 : MyClass1
- {
- //重写基类中的虚方法
- //返回两个int型变量相加的和
- public override int Add()
- {
- int x = 5;
- int y = 7;
- return x + y;
- }
- }
- internal class Program
- {
- static void Main(string[] args)
- {
- MyClass2 myClass2 = new MyClass2(); //实例化MyClass2的对象
- //使用子类(派生类)MyClass2的对象实例化基类MyClass1的对象
- MyClass1 myClass1 = (MyClass1)myClass2;
- myClass1.X = 3; //为MyClass1类中的属性赋值
- myClass1.Y = 5; //为MyClass1类中的属性赋值
- Console.WriteLine(myClass2.Add()); //调用子类(派生类)中的方法
- Console.WriteLine(myClass1.Add()); //同意调用子类(派生类)中的方法
- Console.ReadLine();
- }
- }
- }
|