关闭

虚方法实现多态 C#中的5种访问修饰符

发表于:2013-7-03 10:08

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:为了理想    来源:51Testing软件测试网采编

  多态面向对象的主要特征之一可以实现相同代码不同情况下实现不一样的功能

  虚方法实现多态

  父类声明方法时加 virtual关键字表示这是一个虚方法

  子类声明方法时加override关键字表示这个方法是重写父类中的虚方法

  声明对象时   使用父类类型 声明对象变量 使用子类类型 构造对象

class Person   //声明Person类
{
public Person(string name)  //声明构造函数
{
this.Name = name;
}
public string Name { get; set; }  //声明属性
public virtual void Show()  //用virtual关键字声明方法    表示这是一个虚方法可以被子类重写
{
Console.WriteLine("我是父类虚方法!");
}
}
class Chinese:Person  //声明Chinese类并且继承自Person类
{
public Chinese(string name):base(name)  //调用父类构造函数
{
}
public override void Show()  //用override关键字重写父类中的方法
{
Console.WriteLine("我是中国人 我叫:{0}",Name);
}
}
Person en = new Chinese("某某某");
en.Show();
Console.ReadKey();

  en在调用Show方法是 程序会自动判断子类中的Show方法有没有被重写 被重写则调用子类方法  如果没有重写就调用父类中的Show方法

  C#中的5种访问修饰符

  private  私有访问修饰符,只能在类内部访问该修饰符修饰的类成员(类不能被标记为私有的)

  internal 内部访问修饰符,只能在程序级内部访问该修饰符修饰的类(新建类如果不加修饰符默认为internal修饰符修饰)

  protected 保护访问修饰符,只能在本类或者继承自本类的子类中才能被访问

  protected internal 保护+内部 访问修饰符,在程序集内部或者继承自本类的子类中才能被访问

  public  共有访问修饰符,在程序的任何地方都能访问

  使用反射等方法可以访问私有 内部 保护等修饰符修饰的类或成员属性

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号