同样代码表现的不同行为

创建基类(Super)和派生类(Sub)每个类有一个字段field和一个公共方法getField,并且使用内联的方式初始化为1,方法getField返回字段field。C#和Java代码及运行结果如下
C#
复制代码
class Super
{
public int field = 0;
public int getField()
{
return field;
}
}
class Sub : Super
{
public int field = 1;
public int getField()
{
return field;
}
}
class Program
{
private static void Main(string[] args)
{
Super sup = new Sub();
Console.WriteLine("sup.getField() result:" + sup.getField());
Console.ReadKey();
}
}
复制代码
Java
复制代码
class Super {
public int field = 0;
public int getField() {
return field;
}
}
class Sub extends Super {
public int field = 1;
public int getField() {
return field;
}
}
public class polymorphicDefects {
public static void main(String[] args) {
Super sup = new Sub();
System.out.println("sup.getField() result:" + sup.getField());
}
}
复制代码
Java代码运行结果表现出了多态性,而C#的方法并没有表现出多态性。更具体的说C#中对象sub并没有调用自己实际类型Sub中的方法而是去调用父类的方法。
可能用管了Java的童鞋,突然使用C#在一点上有些许不习惯,其实C#团队在这里加入了一个概念,就是引用访问权限,一个引用代表着他的访问权限,Sub的引用仅能对Sub类型中自己的方法进行访问。
当然C#的方法不是支持多太,只是使用虚方法来表现方法的多态性,可看下面的例子:
复制代码
class Super
{
public int field = 0;
public virtual int getField()
{
return field;
}
}
class Sub : Super
{
public int field = 1;
public override int getField()
{
return field;
}
}
class Program
{
private static void Main(string[] args)
{
Super sup = new Sub();
Console.WriteLine("sup.getField() result:" + sup.getField());
Console.ReadKey();
}
}
复制代码
接下来我想说说我对C#引入引用访问权限的看法。引入了引用访问权限的C#比Java更加的强大了,也比Java多了一个新的特性,当然事情都是有两个方面的,对引用那个访问权限的引入也使C#更加复杂与不易。
不知道其他童鞋有什么看法没,可在评论区多交流。

C# 引用访问权限,很多老手都不懂相关推荐

  1. access 战地1不加入ea_炒牛肉时,想要牛肉嫩滑又不老,只需加入1样东西,很多人都不懂...

    炒牛肉时,想要牛肉嫩滑又不老,只需加入1样东西,很多人都不懂 冬季滋补怎么能少得了牛肉,牛肉中含有非常丰富的营养成分,其中蛋白质的含量尤为丰富还有大量的氨基酸,能够提高身体的抗病能力,特别适合手术后或 ...

  2. 关闭出装显示无服务器,王者荣耀:出装问题很多人都不懂,完全忽略几个细节问题...

    原标题:王者荣耀:出装问题很多人都不懂,完全忽略几个细节问题 其实在高端局里面,还是有很多队友真的完全忽略出装问题,阵容可能选择不错但是最终就是败在出装问题,可见好的阵容成功一半,但是出装坏了那最终还 ...

  3. Java的访问控制修饰符_访问权限修饰符_访问权限修饰词

    public > protected > (default) > private 1.public 修饰的,在任何地方都可以访问 2.protected 修饰的,在类内部.同一个包. ...

  4. Java语法封装之继承、访问权限修饰符、重载与重写、this与super、final、Javabean的使用

    3.3封装 封装 : 隐藏内部的实现细节,对外提供公共的访问方式.方法,类,属性的私有化- 都是封装的体现 封装优点 : 提高程序的安全性 提高代码的复用性 私有是封装,但是封装不是私有 3.3.1 ...

  5. sas 检测到开型代码语句的递归_对于标准答案的递归很多人都看不懂,其实就是一个深度优先的遍历。我写了段伪代码,将递归步骤还原并注释了一下,供大家参考,希望大家有所收获。...

    源自:7-5 Python之递归函数 对于标准答案的递归很多人都看不懂,其实就是一个深度优先的遍历.我写了段伪代码,将递归步骤还原并注释了一下,供大家参考,希望大家有所收获. #if条件不成立的省略 ...

  6. 学习Java的第五天 | 定义方法 | 引用数据类型——类 | 访问权限-修饰符 | 全局变量与局部变量 | toString | 构造方法 | 方法重载

    前面提到的,冒泡排序,二分查找,我们有时候写代码可能不止要查到一种数组的数据,这时候我们就很需要想循环那样的结构,来帮我们解决代码冗余的情况. 我们前面使用的main方法,是一个java程序的入口,我 ...

  7. linux限制目录访问权限,linux用户的访问权限限制的方法都有哪些

    如果你不希望自己的文件被人读取,又或者只是不想某个特定的用户读取修改文件,限制访问权限是最好的处理方法,下面小编就给大家介绍下Linux下限制用户访问权限的方法,一起来学习下吧. 现在需要限定某个用户 ...

  8. Android 入门之 安装镜像 (鉴于国内Google相关很多服务都无法访问)

    很多新手创建sdk是出现了no system images installed for this target 这个问题, 方法一 http://blog.csdn.net/shengxia0dubi ...

  9. linux查看目录访问权限,Linux文件访问权限

    一.设置用户ID和设置组ID 1.实际用户ID和实际组ID标识当前登录的用户. 2.有效用户ID,有效组ID以及附加组ID决定了我们的文件访问权限. 3.通常,有效用户ID等于实际用户ID,有效组ID ...

  10. L型代码结构案例:Link访问权限(上)

    这是松结对编程的第20篇(专栏目录). 本文探讨Link访问权限的最佳实现方法,力求外观干净且封装良好. 这些代码将位于L型代码结构(参见松结对编程系列中的定义)的下层,调用者无需理解其原理. 顺便说 ...

最新文章

  1. 知识图谱学习笔记-非结构化数据处理
  2. 8、MySQL注释:单行注释和多行注释
  3. PW Live 直播 | 清华大学王晓智:事件抽取的进展与挑战
  4. vue 初始化方法_Vue源码解读(一)引入Vue做了什么
  5. jQuery-DOM
  6. html引入php文件中的函数,手把手教你在html中引入另一个html文件的方法(详解)...
  7. 中国联通回应5G入网问题:尚未对公众客户开放
  8. gvim配置文件参考
  9. linux .net环境变量,Linux编程 系统环境变量位置, 环境变量持久化
  10. xshell怎么连接linux服务器,教你怎么使用xshell远程连接linux服务器
  11. 学校源码php,闪灵CMS学校建站系统(含小程序) v5.0 bulid20200319_php免费源码
  12. 8 款免费的 MySQL 数据库建模工具
  13. 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?
  14. idea output 窗口悬浮
  15. J Infect (IF 38) | 韩国中央大学贾保磊等揭示人口腔微生物组中编码羊毛硫抗生素链球菌是肝脏疾病的潜在风险因子...
  16. python3 excel 图表导出图片_使用python代码将excel中的图表导出为图片
  17. 详解 Tree-structured Parzen Estimator(TPE)
  18. dockers 拷贝
  19. ubuntu linux下直观的网络流量监控
  20. 我们建造了学校+ WPBeginner赠品获奖者

热门文章

  1. 浅析.NET中的引用类型和值类型(下)
  2. disable NSLog
  3. 致远getshell
  4. BZOJ:1816 [Cqoi2010]扑克牌 (贪心或二分答案)
  5. BZOJ1486: [HNOI2009]最小圈
  6. NOIP2016D2T2 蚯蚓
  7. Linux系统glibc库版本信息查看
  8. hdu 1394Minimum Inversion Number
  9. 2019年最新资料!共7T!
  10. 关于我对区块链和比特币的看法