virtual、abstract、interface区别以及用法
2024-08-29 08:42:28
virtual 用于在基类中的使用的方法,使用的情况为:
情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法。
情况2:在基类中定义了virtual方法,然后在派生类中使用override重写该方法。那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法。
通俗地讲:老爸用virtual告诉儿子:"孩子,你要工作,找不到事做就跟我一样扫地"。
儿子用override告诉全世界:"我要改变家族的使命,不再扫地,我要编程!"。
如果儿子不用override地话,那他只能继承家族的事业就是扫地!
abstract:
抽象类不能实例化,只能被继承。抽象类中可以有构造方法,一般方法,抽象方法,但是抽象方法并不具体实现,抽象方法必须在派生类中使用override来实现。同时,具有抽象方法的类一定是抽象类。
-----abstract 与virtual : 方法重写时都使用 override 关键字
Interface:
public interface IPerson
{
IPerson(); //错误
string name; //错误
public void getIDcard();//错误
void getName(); //right
void getAge(string s); //right
}
实现interface的类
1.与继承类的格式一致,如 public class Chinese:IPerson{}
2.必须实现 interface 中的各个方法
{
IPerson(); //错误
string name; //错误
public void getIDcard();//错误
void getName(); //right
void getAge(string s); //right
}
实现interface的类
1.与继承类的格式一致,如 public class Chinese:IPerson{}
2.必须实现 interface 中的各个方法
最新文章
- Python 学习文章收藏
- setInterval()与clearInterval()的一个有趣小现象
- 正则表达式之IP地址检验
- 关于破解IDEA
- 边工作边刷题:70天一遍leetcode: day 71-2
- C语言总结(6)
- CMOS and BIOS
- 台电幻彩u盘拆解
- CentOS 6.2图形界面自定义开启终端快捷键
- 设置HTTP代理
- HDU 1331 Function Run Fun(记忆化搜索)
- Spring Security3实现,权限动态获取
- Python抓取百度百科数据
- 线程中WICImage与Bitmap数据转换
- Runtime的理解与实践
- Git 生成 SSH 公钥
- Mongodb复杂查询,总结
- Android为TV端助力 同时setTag两次,保存多种值
- swal() 弹出层的用法
- PHP开发——环境安装