[.net 面向对象编程基础] (8) 基础中的基础——修饰符

[.net 面向对象编程基础] (8) 基础中的基础——修饰符html

 

    在进入C#面向对象核心以前,咱们须要先对修饰符有所了解,其实咱们在前面说到变量和常量的时候,已经使用了修饰符,而且说明了变量和常量的修改符。编程

   首先 修饰符是什么?ide

    修饰符用于限定类型以及类型成员的申明函数

    从定义能够看出按功能分为两类:访问修饰符和声明修饰符编码

1.访问修饰符 (5个)spa

访问修饰符.net

说明htm

public对象

公有访问。不受任何限制。blog

private

私有访问。只限于本类成员访问,子类,实例都不能访问。

protected

保护访问。只限于本类和子类访问,实例不能访问。

internal

内部访问。只限于本项目内访问,其余不能访问。

protected internal

内部保护访问。只限于本项目或是子类访问,其余不能访问

    C#成员类型的可修饰及默认修饰符以下表:

成员类型

默认修饰符

可被修饰符

enum

public

none

class

private

publicprotectedinternalprivate 
protected internal

interface

public

none

struct

private

publicinternalprivate

2.声明修饰符 (10个)

Partial:在整个同一程序集中定义分部类和结构

Static: 声明属于类型自己而不是属于特定对象的成员。

Abstract:抽象类,只能是其余类的基类。类中的方法只声明不实现,方法的实如今他的派生类中完成。

Sealed:指定类不能被继承。

Virtual:用于修饰方法、属性、索引器或事件声明,而且容许在派生类中重写这些对象

Override:提供从基类继承的成员的新实现

New:做修饰符,隐藏从基类成员继承的成员,在不使用 new 修饰符的状况下隐藏成员是容许的,但会生成警告。做运算符,用于建立对象和调用构造函数。

Extern:用于声明在外部实现的方法。 extern 修饰符的常见用法是在使用 Interop 服务调入非托管代码时与 DllImport 特性一块儿使用。 在这种状况下,还必须将方法声明为 static

Readonly:修饰字段,表示该字段为只读字段。

注意:readonly修饰引用类型时因为操做不当可能修改该只读对象状态。例如:Readonly List< Person> persons=.;

咱们可能在某些地方对persons 进行了修改:persons.add(new Person());

Const:修饰字段,表示该字段为只读字段。而且在编译时必须可以明确知道该字段的值,其值是硬编码到程序中去的,修改了该类型成员后须要从新编译才能使修改生效。

readonly是运行时只读,内容在运行时肯定,因此修改了readonly类型成员后无需从新编译便可生效。 

Readonly不能修饰局部变量,const能够。

 

要点:

  Virtual,override和new 的区别

virtual  用于父类中,声明某方法能够重写,该方法不能是static

override(覆盖继承) 用于子类中,重写父类中用virtual/override/abstract关键字声明的方法;

new(隐藏继承)  用于子类中,可修饰父类中有或无virtual声明的方法;

  若是在父类中有与父类同名同参的方法时,C#会隐式在子类前添加一个new关键字。 

【区别】overridenew

  当将一个子类实例赋值给父类实例,在子类实例与父类实例中分别调用该方法时:使用override修饰的都将调用子类方法,而使用new修饰的会分别调用子类方法和父类方法。

  NewOverride这两个关键字是互斥的。不能够同时使用。  

【区别】virtualabstract

  virtual:用于父类中声明该方法可被重写。

  abstract:只能用在抽象类中声明抽象方法,自己不能实现任何功能(所以必须在子类中override),不能实例化。

  二者除了在子类中一样能够用override重写这个相同点以外,没有其余关系。 

 

==============================================================================================

返回目录

 <若是对你有帮助,记得点一下推荐哦,有不明白的地方或写的不对的地方,请多交流>

============================================================================================== 

相关文章
相关标签/搜索