virtual abstract override new 几点学习
1、Vitual方法和普通方法区别为:继承其的子类可以用override/new在重载此方法,也可以不重载其方法,有方法体(可以写语句),override修饰则调用子类方法
2、abstract类中抽象方法无方法体(只有名称)、普通方法(静态方法,无修饰的方法,Virtual方法)可以有方法体,其他类的基类,继承其的子类必须实现所有抽象方法
3、abstract类无法实例化,可以继承接口
4、抽象方法是隐式的虚方法,可以被基类修饰为virtual方法
5、抽象方法只能在抽象类中,可以被override,不可以用new
7、Override方法必须和其父类方法具有相同的签名(函数名、返回值、参数列、访问权限 如:public)
8、Override方法无法重写非virtual方法和static修饰的方法
9、Override方法不能用此修饰符:new static virtual abstract
10、sealed类(密封类)无法被继承 sealed方法必须和override连起来修饰(如:sealed protected override void F(){}),实现sealed方法类的父类必须实现了此方法(存在),密封方法其本身无法再任何派生类中被重写
11、new 如果父类方法里面是new 子类必须用new修饰,如果子类是private修饰,则直接调用父类的new方法,否则调用子类new方法,子类new方法可以重写父类virtual方法,new方法,override方法,不可以写抽象方法
12、只有override方法才可以用sealed修饰 //只有重写方法才能密封
virtual abstract override new 几点学习的更多相关文章
- C#--virtual,abstract,override,new,sealed修饰符学习
1.参考博客 http://www.cnblogs.com/oneword/archive/2009/07/02/1515279.html http://www.cnblogs.com/mygood ...
- C#--virtual,abstract,override,new,sealed
virtual:使用此关键字,可以使其在派生类中被重写. abstract:抽象方法,由子类重写,或继续为抽象方法存在,并由其子子类实现. override: 重写父类方法,属性,或事件的抽象实现或虚 ...
- virtual abstract override
virtual和abstract都是用来修饰父类的,通过覆盖父类的定义,让子类重新定义. 它们有一个共同点:如果用来修饰方法,前面必须添加public,要不然就会出现编译错误:虚拟方法或抽象方法是不能 ...
- [C#] 區分 abstract、virtual、override 和 new
abstract.virtual.override和new是在類別的繼承關係中常用的四個修飾方法的關鍵字,在此略作總結. 1. 常用的中文名稱: n abstract => 抽象方法. n ...
- error C2253: pure specifier or abstract override specifier only allowed on virtual
1.用Visual Studio 2012编译下面代码时出现的错误: #define RTC_DISALLOW_COPY_AND_ASSIGN(TypeName) \ TypeName(const T ...
- c#和java中的方法覆盖——virtual、override、new
多态和覆盖 多态是面向对象编程中最为重要的概念之一,而覆盖又是体现多态最重要的方面.对于像c#和java这样的面向对象编程的语言来说,实现了在编译时只检查接口是否具备,而不需关心最终的实现,即最终的实 ...
- C#Virtual和Override的几种组合
情况1: class A{public void Show()} class B:A{public void Show()} 编译通过,有警告让在B的方法里添加new关键字,以便将A的方法隐藏 编译时 ...
- 快学Scala 第十九课 (trait的abstract override使用)
trait的abstract override使用: 当我看到abstract override介绍的时候也是一脸懵逼,因为快学scala,只介绍了因为TimestampLogger中调用的super ...
- new、virtual、override
我们先看下面一段程序: public class Father { public void Run0() { Console.WriteLine("Father.Run0"); } ...
随机推荐
- 【python】实例-读取已有文件的内容
import os Filename=raw_input("please input filename that you will open: ") if os.path.exis ...
- oracle 无法启动图形界面,no protocol specified
linux 终端启动图形化程序界面时报错:No protocol specified这是因为Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图形显示在当前屏 ...
- C#利用zxing.net操作二维码和条形码
下载地址:http://zxingnet.codeplex.com/ zxing.net是.net平台下编解条形码和二维码的工具,使用非常方便. 首先下载二进制dll文件,引入工程: 代码: usin ...
- qt windows下的配置 以及VS2010的使用
qt在windows下的使用方式有两种: 1.将qt内置在vs下,例如,内置在vs2010下,使用vs的编译器及调试器. 2.在windows下,使用qt creator以及MingW作为编译器的使用 ...
- LAMP兄弟连 李强强 GVIM配置文件完整版
转自http://blog.sina.com.cn/s/blog_5fbb378c01016npv.html "自己看着李强强老师视频代码手写打的.之前最后的一个gvim默认函数方法没放上, ...
- [UE4]组件
用来组成Actor的子对象,Actor是由组件组成的. 几个关键的Component类型: 一.UActorComponent 这个Component的基类,可以被放到Actor里面, 可以接受Tic ...
- javascript的事件流
事件流包括三个阶段: 1.事件捕获阶段 2.处于目标阶段 3.事件冒泡阶段 1.事件捕获阶段 现在页面中有一个按钮. 如果单击这个按钮的话,在事件捕获过程中,document会首先接收到click事件 ...
- 安装phoenix时,执行命令./sqlline.py hostname1,hostname2.hostname3..... 时报错 ImportError: No module named argparse
问题描述: 怎么解决呢: 网上看了好多方法,但是本屌丝表示看不懂啊,没理解人家的博客的博大精深,好吧我们回到正题!! 先切换到root用户下安装这个东西 yum install python-a ...
- js常见兼容
滚动条的兼容写法(谷歌chrome) document.documentElement.scrollTop || document.body.scrollTop 阻止浏览器默认行为的兼容写法 e ...
- remove ubuntu lvm
sudo vgdisplay sudo vgremove groupname