虚方法、重写、类的继承与多态

using System;

namespace VR30Lesson11
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			Console.WriteLine ("Hello World!");

			Man m = new Man ();
			//m.Test ();

			Child c = new Child ();
			//c.Test ();

			//父类的引用指向子类的对象
			Man m1 = new Child ();

			//m1.Test ();
			//重载 overload  重写 overide

			//当父类的方法不能满足子类的使用的时候
			//子类可以重写父类的方法
			People p = new People ();

			People p1 = new Man();
			p.Play ();
			m.Play ();
			p1.Play ();
			//重写 和  隐藏
			//父类的方法都可以隐藏
			//重写只能重写虚方法

			//当父类的引用指向子类的对象的时候
			//隐藏:执行的是父类的方法
			//重写:执行的是子类重写后的方法


			//多态:重载和重写

			//封装:
			//属性:是对封装最好的体现

			p.Age = 1000;
			int num = p.Age;
			Console.WriteLine (p.Age );
		}
	}
	//
	class People{
		public string name;
		//字段
		private int age;
		//属性
		public int Age {
			set { 
				age = value;
			}

			get { 
				
					return age;


			}
		}
		//public string Name{ set;get}
		//只能重写父类的虚方法 virtual
		public  virtual void Play(){
			
			Console.WriteLine ("万达年会来一曲");
		}
		public  void Eat(){


		}

	}
	//男人类 继承人类  基类
	//继承:子类可以直接使用父类的属性和方法
	//父类不能直接使用子类的属性 和方法
	//C# 单继承//一个只允许有一个父类,但是可以有很多子类
	//继承是可以传递的
	class Man:People {


		//public override void Eat(){


		//}

		public void Test(){

			Console.WriteLine ("我是父类的Test");

		}
		//重写父类的方法
		public override void Play(){
			Console.WriteLine ("LOL我要拿冠军");
		}
	}
	class Child :Man {

		//隐藏父类的方法
		new public void Test (){
			//base 指父类的对象
			//base.Test ();
			name = "";
			Console.WriteLine ("我是子类的Test");
		}


	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值