博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#Virtual和Override的几种组合
阅读量:5367 次
发布时间:2019-06-15

本文共 732 字,大约阅读时间需要 2 分钟。

情况1:

 
class A{public void Show()}class B:A{public void Show()}

  

编译通过,有警告让在B的方法里添加new关键字,以便将A的方法隐藏

编译时绑定(根据声明类型调用方法)

情况2:

class A{public virtual void Show()}class B:A{public void Show()}

编译通过,有警告让在B的方法里添加new或者override关键字,默认将A的方法隐藏

编译时绑定(根据声明类型调用方法)

情况3:

class A{public virtual void Show()}class B:A{public override void Show()}

  

编译通过

运行时绑定(根据实际类型调用方法)

情况4:

class A{public void Show()}class B:A{public override void Show()}

  

编译错误,被override的方法必须是abstract、virtual或者override的

结论1:若想使用动态绑定(运行时绑定)

class A{public virtual void Show()}class B:A{public override void Show()}

  

结论2:若想使用静态绑定(编译时绑定)

class A{public void Show()}class B:A{public new void Show()}

  

看来不能死读书,还是实际操作一下比较容易搞清楚:)

转载于:https://www.cnblogs.com/binyao/p/4875707.html

你可能感兴趣的文章
MySQL中 1305-FUNCTION liangshanhero2.getdate does not exit 问题解决
查看>>
python序列化和json
查看>>
mongodb
查看>>
网格与无网格
查看>>
SSH-struts2的异常处理
查看>>
《30天自制操作系统》学习笔记--第14天
查看>>
LGPL协议的理解
查看>>
1、Python基础
查看>>
Unity The Tag Attribute Matching Rule
查看>>
试着理解下kvm
查看>>
WebService学习总结(二)--使用JDK开发WebService
查看>>
Tizen参考手机RD-210和RD-PQ
查看>>
竞价广告系统-位置拍卖理论
查看>>
策略模式 C#
查看>>
[模板]树状数组
查看>>
[HDU 6447][2018CCPC网络选拔赛 1010][YJJ's Salesman][离散化+线段树+DP]
查看>>
设计模式学习的好方法
查看>>
感谢Leslie Ma
查看>>
几种排序方法
查看>>
查看数据库各表的信息
查看>>