同一个解决方案下,想访问另一个项目里的类:(需要是public)
- 右键依赖项添加引用
- 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");
}
}
本文介绍了C#中不同访问级别的概念,包括public,internal,private和protected的使用场景。讨论了如何在同一项目或不同项目中引用类,并解释了类的继承原理,包括横向扩展、纵向扩展以及隐藏和重写。还展示了如何通过基类引用子类以及重写父类方法的例子。
3285

被折叠的 条评论
为什么被折叠?



