简述对new,virture 和override关键字的理解
在最近的学习过程中,我学的最多的方法那就是断点调试。F10是逐过程,F11是逐语句。因为只有调试才能知道程序到底是怎样运行的,所以有人毫不夸张的说“程序不是写出来的,是调试出来的”。下篇将贴出另外一段代码,就可以看出调试的作用,也是提醒我自己要认真,不要不求甚解。
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Data;
namespace test
{
class Program
{
static void Main(string[] args)
{
FatherClass fc1 = new GrandsonClass();//用GrandsonClass类实例化对象fc1
FatherClass fc2 = new SonClass();//用SonClass类实例化对象fc2
fc1.prinf();//调用基类虚方法,因为new关键字隐藏了
Console.WriteLine();
fc2.prinf();
Console.WriteLine();
Console.ReadKey();
}
}
abstract public class FatherClass
{
public virtual void prinf()//virtual定义一个虚方法
{
Console.WriteLine("这是虚方法,也是基类方法!");
}
}
public class SonClass : FatherClass
{
public override void prinf()//override用来重写基类虚方法
{
Console.WriteLine("这是SonClass的方法!重写基类虚方法。");
}
}
public class GrandsonClass : FatherClass
{
public new void prinf()//new隐藏基类虚方法
{
Console.WriteLine("这是GrandsonClass的方法!隐藏基类FatherClass虚方法。");
}
}
}
这是程序执行输出的结果:
ctrl+F5执行程序输出后,我按了空格键,所以有按任意键继续的提示
这是GrandsonClass的方法!隐藏基类FatherClass虚方法。
这是SonClass的方法!重写基类虚方法。
PS:如有任何问题,欢迎一起讨论,也欢迎提出批评意见。QQ:153941061,E-Mail:yangkunlisi@qq.com
简述对new,virture 和override关键字的理解相关推荐
- C++中的override关键字
文章目录 1 C++中的override关键字 1 C++中的override关键字 作用: 提示程序的阅读者,这个函数是重写父类的功能. 防止程序员在重写父类的函数时,把函数名写错. #includ ...
- [C++11]override关键字的使用
override关键字确保在派生类中声明的重写函数与基类的虚函数有相同的签名,同时也明确表明将会重写基类的虚函数,这样就可以保证重写的虚函数的正确性,也提高了代码的可读性,和final一样,这个关键字 ...
- C++ override 关键字用法
override关键字作用: 如果派生类在虚函数声明时使用了override描述符,那么该函数必须重载其基类中的同名函数,否则代码将无法通过编译. 举例子说明 struct Base {virtual ...
- C#.NET 虚方法中中的virtual 和override关键字的使用
谈到C#.NET的虚方法就不得不先说一下继承性(inheritance),继承和多态度.封装一起构成面向对象程序设计的三大要素,继承指一个类基于一个已有的类按照需求添加和删除一些功能. 首先,我们通过 ...
- C++-[override]关键字使用详解
本文介绍了C++ override关键字使用详解以及与重载的区别. C++ override关键字使用详解 一.override作用 二.override在基类与派生类的应用 2.1. 纯虚函数 2. ...
- override关键字
在学习设计模式的时候接触到了 override 关键字,查看相关资料后整理如下. Override 关键字作用 如果派生类在虚函数声明时使用了 override 描述符,那么该函数必须 重写 其基类中 ...
- C++中关键字的理解--Static
C++中关键字的理解---Static 目录:1.static缘起 2.static自我理解 3.static举例使用 4 ...
- java static关键字_好程序员Java教程分享static关键字的理解
好程序员Java教程分享static关键字的理解,static关键字含义可以理解为静态的. 1. 当其修饰属性时,该属性为整个类公有,所有的对象操作的都是同一个静态属性.所以调用时应该使用类名去调用, ...
- Java中 synchronized 关键字的理解
synchronized 关键字的理解 在Java中,synchronized 是一个重量级的控制并发的关键字. 这个关键字可以保证并发过程所必须的"原子性","可见性& ...
最新文章
- 1.7nginx用户认证
- layer.load 支持文字内容
- linux mint 19 与windows时间不同步
- linux命令老是忘记,Linux可能会忘记的命令整理
- 复杂对象的组装与创建——建造者模式
- WinPcap笔记(1):VisualStudio2015配置WinCap
- 计算机考试上传照片教程,电脑照片传到iPhone手机的详细步骤【图文】
- Python机器学习:SVM003Soft Margin和SVM(线性)的正则化
- 两个可用的ntp服务器地址
- 论文赏析[NAACL19]无监督循环神经网络文法 (URNNG)
- Android 科大讯飞离线语音识别
- 如何保证战略落地_企业战略如何实现落地
- 【C语言】一维数组传参和二维数组传参的总结
- nginx正向代理反向代理负载均衡
- 封装系统(以封装Windows 7为例)
- win 2008R2启用TLS 1.2 Windows 2008/2008R2手动启用TLS1_2协议教程
- ONES 万事联合创始人 \u0026 CTO 冯斌:企业服务产品的探索实践
- 【二分图匹配】【CSTC2000】丘比特的烦恼
- linux 隐藏命令参数,linux – 在ps中隐藏命令的参数
- 量子信息技术(QIT)