类的声明、继承、重写、多态

本文介绍了C#中不同访问级别的概念,包括public,internal,private和protected的使用场景。讨论了如何在同一项目或不同项目中引用类,并解释了类的继承原理,包括横向扩展、纵向扩展以及隐藏和重写。还展示了如何通过基类引用子类以及重写父类方法的例子。

同一个解决方案下,想访问另一个项目里的类:(需要是public)

  1. 右键依赖项添加引用
  2. using需要引用的类

同一个项目里,想访问另一个文件夹里的类(需要是internal)

  • 直接using后使用

派生类:基类
子类的访问级别不能超过父类
子类是对父类的横向与纵向的扩展
可以用一个父类型的变量来引用子类型
eg. Object o1 = new Car(); 这个时候o1只能调用o1自己类里的方法

namespace HelloAccess
{
	class Program
	{
		static void Main(string[] args)
		{
		    /*
			RaceCar raceCar = new RaceCar();
			raceCar.Owner		//子类可以接收父类的成员
			*/

			Car car = new Car();
			Console.WriteLine(car.Owner);		//Car Owner
		}
	}
	
	class Vehicle
	{
		public Vehicle()
		{
			this.Owner = "N/A"
		}
		public string Owner{get;set;}
	}
	
	class Car : Vehicle
	{
		public Car()
		{
			this.Owner = "Car Owner";
		}
		public void ShowOwner()
		{
			Console.WriteLine(base.Owner);		//base只能访问上一层
		}
	}

	class RaceCar : Car
	{
	}
}

类成员的访问级别:
类成员的访问级别是以项目级别为上限

  • internal + 方法:当前项目里都可以访问
  • private + 方法:只能在当前类访问
  • protected + 方法: 只能在继承链上使用(又不想被外界调用,又想自己使用,所以不选择internal)

类的继承:(若有多个,则调用继承链上最新的)
类成员的“横向扩展”(成员越来越多)
类成员的“纵向扩展”(行为改变,版本增高)
类成员的隐藏(不常用)
重写与隐藏的发生条件:函数成员,可见,签名一致

//重写父类必须有virtual,子类必须有override
class Vehicle
{
	public virtual void Run()
	{
		Console.WriteLine("I'm running");
	}
}

class Car : Vehicle
{
	public override void Run()
	{
		Console.WriteLine("Car is running");
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值