.NET的面向对象

一、继承

1、C#中的继承规则

  • 继承是可传递的
  • 派生类是对基类的扩展
  • 构造函数和析构函数不能被继承
  • 派生类可以覆盖已继承的成员
  • 派生类只能从一个类中继承,可以通过接口来实现多重继承
  • 类可以定义虚属性、虚方法及虚索引指示器,派生类可以重载这些成员,从而使类展示出多态性

2、访问基类成员两种方法

  • base.方法名();
  • 显式类型转换

3、隐藏基类成员----new修饰符  public new void 基类方法名()

4、密封类和密封方法

    密封类在声明中使用sealed修饰符,防止被其他类继承-----public sealed class 方法名()

5、抽象类和抽象方法

    把类或方法声明为abstract来实现抽象,抽象类不能实例化,没有任何执行代码,必须在派生类中重写override

6、虚函数

    方法在基类里不用具体实现,而是在派生类中实现功能(override),可以把基类中的方法声明为虚函数(virtual)

7、多重继承

    C#不支持多重继承,子类只能派生于一个父类,但允许类派生于多个接口。

  • 实现多个接口的相同名称的方法,前面不能加public等关键词,方法前加相应的接口

       void IFace1.Say(){}

       void IFace2.Say(){}

  • 对于不同名的方法,前面必须加上public标识符

        public void Hello(){}

  • 创建派生类的实例时,如果调用某个接口的实现(有同名方法时),必须强制将实例转换为相应接口类型

        FaceToFace facetest=new FaceToFace();

        ((IFace1)facetest).say();

        facetest.Hello();

8、继承与访问修饰符

      访问修饰符用于指定声明的成员的可访问性,类的继承中有4个访问修饰符:public、protected、private、internal

      使用这些修饰符可指定5种访问级别:

      public       访问不受限制

      protected 仅限于类自己的派生类访问和继承

      private     仅限类自己内部访问,不能继承

      internal    在同一程序集内的类

     protected internal 在同一程序集内的类和其派生类

 

二、委托

    定义委托的语法:delegate void 方法名();

    delegate关键字用于声明一个引用类型,该引用类型用于封装命名方法或匿名方法。

    委托是一种特殊的对象类型,它定义了方法的类型,使得可以将方法当做寿 另一个方法的参数进行传递,委托包含的是方法的地址,是将方法动态的赋给参数的做法。

  •   多播委托----可以将多个方法赋给同一个委托,这就是多播委托。当调用委托时,将依次调用其所绑定的方法。

三、反射

    反射(Reflection)是.NET中的重要机制,通过反射,可以在运行时获得每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。

    我们可以在程序中得到动态实例化对象,获得对象的属性,并调用对象的方法。

  •  首先添加命名空间的引用----using System.Reflection
  • 列出程序集中的所有类型----Assembly=Assembly.LoadFrom("dll名"); Type[] type=ass.GetTypes();
  • 列出类中所有方法----MethodInfo[] mif=类名.GetMethods();
  • 实例化类,并调用类中的方法----Object obj=Activator.CreateInstance(类名);MethodInfo ms=类名.GetMethod("方法名");ms.Invoke(obj,null);

    

 

转载于:https://www.cnblogs.com/tkaren/p/5387302.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值