C#的Class的几个修饰符
none or internal 类只能在当前的工程中访问
Public 类可以在任何地方访问
abstract or internal abstract 类可以在当前的工程中访问,不能实例化,只能继承
Public abstract 类可以在任何地方访问,不能实例化,只能继承
sealed or internal sealed 类只能在当前的工程中访问,只能实例化,不能继承
Public sealed 类可以在任何地方访问,只能实例化,不能继承
1、用于关键字class的修饰符
1)internal 默认修饰符,指定类为内部的,只有当前工程中的代码才能访问它
2)public 指定类为公共的,其它工程中的代码也可以访问它
3)abstract 指定类为抽象的,不能实例化,只能继承,可以有抽象成员
4)sealed 密封的,不能继承
其中,internal和public是一对互斥关系,abstract和sealed是一对互斥关系,两对之间可以互相搭配使用。
默认类定义如下:
class A{}即相当于internal class A{},internal通常是省略的。
2、用于关键字interface的修饰符
1)public和private 这对访问修饰符和关键字class的定义是一样的,由于接口的公共特性通常使用public
2)abstract和sealed 这对修饰符不能在接口中使用,因为它们对接口毫无意义
当定义派生类时,如果同时有基类和接口,那么先写基类再写接口,用逗号分开,只能继承一个基类但可以有多个接口,如:
class DerivedClass:BaseClass,IInterface1,IInterface2
{}
接口定义和继承如下:
public interface IMyInterface:IInterface1,IInterface2
{}
3 、用于类成员(包括字段、属性、方法)的修饰符
1)public--成员可以由任何代码访问
2)private--成员只能由本类中的代码访问(默认值)
3)internal--成员只能由定义它的工程(装配件)内部的代码访问
4)protected--成员只能由类或派生类中的代码访问
最后两个关键字可以合并使用,即protected internal,只能由工程(装配件)中类和派生类的代码访问。此外与以上关键字并行的还有static,表示类的静态成员,而不是类的实例成员。字段还可以定义为realonly,只能在定义时或构造函数中赋值并赋值后不可更改。
4、类方法还有另外的关键字定义
1)virtual--方法可以重写
2)abstract--方法必须重写(只用于抽象类中,如果类方法定义了abstract则class也必须追加abstract)
3)override--方法重载了一个基类方法(如果方法被重载则必须使用该关键字)
4)extern--方法定义在其他地方
另:派生类的类方法还可以使用new来隐藏基类方法;通过this指向当前类实例引用,通过base关键字指向基类实例引用。
C#的Class的几个修饰符的更多相关文章
- JAVA语言中的修饰符
JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...
- Java类访问权限修饰符
一.概要 通过了解Java4种修饰符访问权限,能够进一步完善程序类,合理规划权限的范围,这样才能减少漏洞.提高安全性.具备表达力便于使用. 二.权限表 修饰符 同一个类 同一个包 不同包的子类 不同包 ...
- iOS 方法修饰符
一.NS_DESIGNATED_INITIALIZER 用来修饰init方法,被修饰的方法称为designated initializer:没有被这个修饰的init方法称为convenience i ...
- C#基础回顾(一)—C#访问修饰符
一.写在前面的话 好久没有停下来总结自己,转眼间15年过去好些天,回首过去的日子,亦或失去,亦或所得!生活的节奏,常常让我们带着急急忙忙的节奏去追赶,也许这并不是每个人所期望的生活方式!于他人,于自己 ...
- 关于Java语言中那些修饰符
一.在java中提供的一些修饰符,这些修饰符可以修饰类.变量和方法,在java中常见的修饰符有:abstract(抽象的).static(静态的).public(公共的).protected(受保护的 ...
- C#基础知识八之访问修饰符
1. 类的访问修饰符 修饰符 访问权限 无或者internal 只能在同一个程序集中访问类 public 同一个程序集或引用该程序集的外部都可访问类 abstract或internal abstra ...
- java访问修饰符
了解面向对象思想的同学们,都知道"封装"这一基本特征,如何正确运用访问修饰符,恰恰能体现出封装的好坏. java访问修饰符有四个: 1)public:访问权限最高,其修饰的类.类变 ...
- java静态修饰符static的使用
class Person { private String name; private int age; /* * 假设每个Person对象的国籍都一样, * 那么每次调用都要赋值就会不合理. * 使 ...
- Scala访问修饰符(四)
Scala 访问修饰符基本和Java的一样,分别有:private,protected,public. 如果没有指定访问修饰符符,默认情况下,Scala对象的访问级别都是 public. Scala ...
- Java 修饰符
Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 修饰符用来定义类.方法或者变量,通常放在语句的最前端.我们通过下面的例子来说明: public class classNam ...
随机推荐
- 【重点突破】—— UniApp微信小程序开发教程学习Three
一.实战 HBuilderX:在微信小程序中运行页面,需要设置->安全 开启微信小程序服务端口,HBuilder工具->设置->配置程序路径 网络请求.模板语法.打开页面.页面传参 ...
- Xcode升级10.3后XIB文件报错
Xcode升级10.3后XiB文件包错,提示: Failed to find or create execution context for description '<IBCocoaTouch ...
- Html/CSS 初步介绍html和css部分重要标签
&初步介绍html和css部分重要标签& 注:开头书写:<!DOCTYPE html>表明对应标准html代码 先行总结重点 下方给出具体 CSS: 1. position ...
- Spring 初识
一.Spring是什么? 首先可以进入Spring官网 https://spring.io/ 看一下相关介绍. Spring为开发者提供了一站式的轻量级应用开发平台.简单来说,Spring为开发者提供 ...
- oracle 11g 数据库恢复技术 --rman catalog
Oracle RMAN的catalog并不是指标备份恢复操作的一个必要组件,但oracle推荐使用该组件.启用之后,归档日志.备份集.镜像复制等备份信息的保存地点是RMAN资料库(catalog), ...
- wsl 下安装docker
docker for windows本身其实是可以直接用的,但是仍然有很多不足,比如说:权限问题.没有docker.sock文件.文件编码问题等.而win10自带的wsl可以非常完美地解决这些问题. ...
- 伯努利分布、二项分布、多项分布、Beta分布、Dirichlet分布
1. 伯努利分布 伯努利分布(Bernoulli distribution)又名两点分布或0-1分布,介绍伯努利分布前首先需要引入伯努利试验(Bernoulli trial). 伯努利试验是只有两种可 ...
- XSS注入常用语句(整理)
<script>alert('hello,gaga!');</script> //经典语句,哈哈! >"'><img src="javas ...
- [Git] 025 标签命令
0. 前言 小时候看<剑花-烟雨-江南>,惊讶于那个多重身份的"小侯爷" 后来发现,现实中拥有比小侯爷更多身份的人多如牛毛 其实,在 "Git" 中 ...
- RHEL 无图形界面安装oracle 11gr2
RHEL7.3 无图形界面安装oracle 11gr2 使用纯命令安装方式.提供RHEL全量系统镜像. 1.oracle官方下载地址:https://www.oracle.com/techne ...