C#中的public protected internal private

1.常见的四种方位修饰符关系
下图中的protected internal是并集的关系,意思是在命名空间内是internal的,在命名空间外是protected的


2.sealed final

sealed 修饰符可以应用于类、实例、方法和属性。这个是C#中用的

  1. 用于类时,该类被称为密封类,密封类不能被继承;
  2. 用于方法时,该方法被称为密封方法,密封方法会重写基类中的方法;sealed修饰符应用于方法或属性时,必须始终与override一起使用;
  3. 结构是隐式密封的,因此它们不能被继承。

final修饰符来限定变量、字段、方法和类。这个是JAVA中用的

  1. 用于变量时,该变量只能赋值一次,不可修改;
  2. 用于方法时,该方法不能被重写或隐藏;
  3. 用于类时,该类不能被继承。
  4. 接口的成员是不能使用该关键字的,道理和不能在abstract类使用final一样。

值得一提的是,如果使用final修饰类中的字段,那么该字段必须在构造函数中赋值,否则使用类实例调用的方式是无法对该字段进行赋值的,道理很简单,类在实例化时,会为每一个成员字段赋初值,之后你如果再通过实例方式调用该final字段,就属于二次赋值的情况了,这种情况是不允许的。在构造函数中为final变量赋值的方法叫做“延时赋值”(Java),相应的final变量叫做“空白final”(Java)。

Final并不是一个C#中的关键字,但经常在C#面试题中出现,例如说说“Final、Finally、finalize的区别”,其实这已经超出C#的范畴,这三个关键字分别考核了J#、.Net 容错方法、.Net垃圾收集机制,奇怪的是,每次我面试C#程序人员时,大部分人员对Final这个关键字并无陌生之感,相反却答得头头是道,看来来面试之前,早在网上有所预习,呵呵。

来自为知笔记(Wiz)

附件列表

时间: 2024-10-10 09:06:15

C#中的public protected internal private的相关文章

JAVA中public protected default private访问权限

前言:本文解决的问题 public protected default private这四个修饰符的访问权限问题 public对所有类公开,private只有本类可以访问.这里需要注意的是protected,除了对本类和子类公开外,还对本包所在类的公开,即同一包类的类都可以访问:default,如果没有明确写出修饰类型则为default,它只对本包公开.这四个修饰符的访问权限从大到小为public>protected>default>private. 另外,慎用protected,容易破

Java的权限修饰符(public,protected,default,private)

访问权限修饰符权限从高到低排列是public  ,protected  ,default, private. 一.根据"是否是同包"."是否是子类"分为4中情况+本类 5种情况 二.把 同包中的子类 和 同包中的非子类 合并为 同包 访问修饰符 本类 同包 不同包,子类 不同包,非子类 public √ √ √ √ protected √ √ √   default(friendly) √ √     private √      

public,protected,friendly,private的访问权限

请说出作用域public,private,protected,以及不写时的区别 这四个作用域的可见范围如下表所示. 说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly. 作用域    当前类  同一package  子孙类  其他package public        √        √           √        √ protected     √         √         √        × friendly      √          √

java 修饰符的作用一(public protected default private 组)

1.public protected default private 组 public 权限最大,同类,同包,不同包,同包子类父类之间,不同包子类父类之间都可以访问. java 默认的权限是default,即friendly(注:friendly 在java中没有,是c的说法.) 同类,同包,同包子类父类都可以访问. protected受保护的,同类,同包,同包子类父类,不同包子类父类都可以访问 private 私有的权限最小,同类可以访问. 图如下: 位置                   

java四种权限修饰符(public > protected > (default) > private)

权限修饰符在哪里可以访问 (default) : 表示什么权限修饰符都不写 位置 public protected (default) private 同一个类 yes yes yes yes 同一个包 yes yes yes no 不同包子类 yes yes no no 不同包非子类 yes no no no 原文地址:https://www.cnblogs.com/zhuobo/p/10612656.html

详解Java中的访问控制修饰符(public, protected, default, private)

Java中的访问控制修饰符已经困惑笔者多时,其中较复杂的情况一直不能理解透彻.今天下定决心,系统.全面地研究Java中的访问控制修饰符的所有方面,并整理成这篇文章,希望有同样疑惑的读者读完后能有所收获.如果文章中出现错误,欢迎评论指出,共同交流~ 说在前面:这篇文章只研究Java中访问控制修饰符声明类的变量/方法的情况. 先抛出结论: * 成员变量/方法的访问权限 *                                        private        default  

c/c++ 继承与多态 继承中的public, protected, private

问题:类B私有继承类A,类A有个protected成员,那么在类B的成员函数里是否可以使用类A的protected成员? 可以使用. 估计有的同学说不对吧,类B都私有继承了类A了,怎么还能访问类A的protect成员呢?请看下面的例子.在类Pri_derv的f()成员函数里是可以方位父类Base的pub_mem();和prot_mem;的. class Base{ public: void pub_mem(); protected: int prot_mem; private: char pri

[Thinking in Java]修饰符public,protected,默认,private

在使用Java时,常常会遇到四种修饰符,即public,protected,默认(没有修饰符),private,这里写下它们的区别public :包内包外任意访问 protected :包内访问,包外仅子类访问 默认 :包内任意访问 private :仅类内访问 用代码解释 1 package p1; 2 import static java.lang.System.*; 3 4 public class A { 5 public int m1 = 1; 6 protected int m2 =

java中的public,protected,private权限修饰

在java程序前如果不加任何一个权限修饰符,默认是只允许包内访问,只有在同一个包内的类之间才能访问. public: 对每个人都是可用的,在任何地方的任何包内都可以访问. protected: protected处理的是继承的问题,只有子类和自己可以访问,不局限于本包. private: 只有自己可以访问.