out与ref

相同点:

  • 都是址传递,执行方法后,原来的值都改变

不同点

  • ref传入的值必须初始化,而out是不用初始化的
  • ref能把参数传进方法,而out要把参数清空(即使参数已经赋值也要清空),退出方法时,所有out参数必须赋值

base

  • 用于在派生类中实现对基类共有或受保护成员的访问,但只局限在构造函数,实例方法和实例属性访问器
  • 静态方法中不能使用base关键字

override

  • 要扩展或修改继承方法,属性,索引器或事件的抽象实现或虚实现,必须使用override修饰符
  • 要重写的基方法必须与override方法具有相同的签名
  • 重写基方法必须是virtual,abstract修饰
  • overload:重载 提供的是一种机制,相同函数名通过不同的返回值类型或者参数个数或类型来区分的机制

抽象类

  1. 抽象类用于描述所有子类的共同特性,仅仅为了表达抽象概念,不参与具体事物联系
  2. 抽象类不能被直接实例化,可以在派生类中实现实例化
  3. 抽象类只声明不实现,但是在子类中必须全部实现