c#隐藏基类方法的作用
当派生类和基类有同样的的方法(方法名相同、参数列表相同和返回值相同),这时派生类的方法可以隐藏基类的方法。也就是说可以在派生类中创建和基类方法相同的方法,但是执行的过程却不同,并且需要使用new关键字。
class program
{
static void Main(string[] args)
{
B b=new B();
b.F();
A a=b;
a.F();
Console.ReadKey();
}
}
class A
{
public void F()
{
Console.WriteLine("A.F");
}
}
class B:A
{
new public void F() //隐藏A类中的F方法
{
Console.WriteLine("B.F");
}
}
相关推荐
-
C#生成设置范围内的Double类型随机数的方法
本文实例展示了C#实现生成设置范围内的Double类型随机数的方法,对于C#的学习来说有不错的借鉴价值,分享给大家供大家参考. 关键代码如下: /// <summary> /// 生成设置范围内的Double的随机数 /// eg:_random.NextDouble(1.5, 2.5) /// </summary> /// <param name="random">Random</param> /// <param name=&q
-
C#在运行时动态创建类型的实现方法
本文实例讲述了C#在运行时动态创建类型的实现方法.是C#项目开发中很实用的技巧.分享给大家供大家参考.具体分析如下: 具体来说,C# 在运行时动态的创建类型是通过动态生成C#源代码,然后通过编译器编译成程序集的方式实现动态创建类型的. 主要功能代码如下: public static Assembly NewAssembly() { //创建编译器实例. provider = new CSharpCodeProvider(); //设置编译参数. cp = new CompilerParamete
-
C#实现为类和函数代码自动添加版权注释信息的方法
本文实例讲述了C#实现为类和函数代码自动添加版权注释信息的方法,分享给大家供大家参考之用.具体方法如下: 以web项目为例: 一:给类加注释 1.在visual studio 的安装路径下 如:[盘符]:/Program files/Microsoft Visual Studio 8/Common7/IDE/ItemTemplates/web/cshare/2052/class.zip ,将里面的class.cs改为: /*------------------------------------
-
C#中分部类和分部方法的应用
分部类(Partial Class)在C#2.0引入,分部方法(Partial Method)在C#3.0引入,这两个语法特性都具有相同的特性:将类(或)方法的代码分散在多个地方. 1.分部类的特性和应用 1.1分部类的定义 在定义一个类时,加上partial关键字,此类即成为分部类. 分部类允许将一个类的代码分散于一个以上的源代码文件中. Person.cs代码如下 复制代码 代码如下: namespace PartialClassDemo1 { public partial clas
-
C#中实现抽象类里建立静态方法
本文简述了C#中实现抽象类里建立静态方法的解决办法,示例程序如下: public class TestMain { public static void main(String[] args) { AbstractTest.out(); } } 如上面所示的程序是可以运行的. 一般情况下抽象类中可以包含抽象方法和非抽象方法,静态类中只能包含静态成员,所有的静态成员也只能包含在静态类中. 因为静态static的本质是包含abstract和sealed的,所以静态方法可以包含在抽象类中,并通过抽象类
-
C#中分部方法和分部类分析
本文实例分析了C#中分部方法和分部类.分享给大家供大家参考. 具体代码如下: 复制代码 代码如下: using System; namespace Partial { class Program { static void Main(string[] args) { A a = new A(); } } partial class A { public A()
-
C#中子类调用父类的实现方法
本文实例讲述了C#中实现子类调用父类的方法,分享给大家供大家参考之用.具体方法如下: 一.通过子类无参构造函数创建子类实例 创建父类Person和子类Student. public class Person { public Person() { Console.WriteLine("我是人"); } } public class Student : Person { public Student() { Console.WriteLine("我是学生"); } }
-
C#运用FileInfo类实现拷贝文件的方法
本文所述实例为C#运用FileInfo类实现拷贝文件的方法,程序中C#首先创建一个 StreamWriter 对象 writer,它向 FileInfo 的实例 srcFile 所表示的文件追加文本,FileInfo 类的 CopyTo 方法,实现文件的拷贝. 具体实现代码如下: using System; using System.IO; namespace 拷贝文件 { class Class1 { [STAThread] static void Main(string[] args) {
-
c#隐藏基类方法的作用
当派生类和基类有同样的的方法(方法名相同.参数列表相同和返回值相同),这时派生类的方法可以隐藏基类的方法.也就是说可以在派生类中创建和基类方法相同的方法,但是执行的过程却不同,并且需要使用new关键字. 复制代码 代码如下: class program{ static void Main(string[] args) { B b=new B(); b.F(); A a=b; a.F(); Console.ReadKey(); } } class A { public void F() { Con
-
C#子类对基类方法的继承、重写与隐藏详解
前言 提起子类.基类和方法继承这些概念,肯定大家都非常熟悉.毕竟,作为一门支持OOP的语言,掌握子类.基类是学习C#的基础.不过,这些概念虽然简单,但是也有一些初学者可能会遇到的坑,我们一起看看吧. 子类继承基类非私有方法 首先我们看最简单的一种,子类继承自基类,但子类对继承的方法没有任何改动 class Person { public void Greeting() { Console.WriteLine("Hello, I am Person"); } } class Employ
-
重写、隐藏基类(new, override)的方法
复制代码 代码如下: public class Father { public void Write() { Console.WriteLine("父"); } } public class Mother { public virtual void Write() { Console.WriteLine("母"); } } pub
-
深入理解C#中new、override、virtual关键字的区别
OO思想现在已经在软件开发项目中广泛应用,其中最重要的一个特性就是继承,最近偶简单的复习了下在C#中涉及到继承这个特性时,所需要用到的关键字,其中有一些关键点,特地整理出来,方便大家查阅. 一.在C#中,new这个关键字使用频率非常高,主要有3个功能: a) 作为运算符用来创建一个对象和调用构造函数. b) 作为修饰符. c) 用于在泛型声明中约束可能用作类型参数的参数的类型. 在本文中,只具体介绍new作为修饰符的作用,在用作修饰符时,new关键字可以在派生类中隐藏基类的方法,也就说在使用派生
-
.net(c#)中的new关键字详细介绍
1)new 运算符:用于创建对象和调用构造函数.这种大家都比较熟悉,没什么好说的了.2)new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员.3)new 约束:用于在泛型声明中约束可能用作类型参数的参数的类型. new关键字在我们的程序中可谓是无时不刻在用到,那么new关键字都可以用在哪些地方呢?考虑以下几个问题: 1.new一个class对象和new一个struct或者new一个enum有什么不同? 答:new一个class时,new完成2个内容:一是调用newobj命令
-
C#之继承实现
目录 一.继承的类型 1.实现继承和接口继承 2.多重继承 3.结构的继承 二.继承的实现 1.虚方法 2.隐藏方法 3.调用函数的基类版本 4.抽象类和抽象函数 5.密封类和密封方法 6.派生类的构造函数 三. 修饰符 1.可见性修饰符 2.其它修饰符 四.接口 一.继承的类型 在面向对象的编程中,有两种截然不同继承类型:实现继承和接口继承 1.实现继承和接口继承 *实现继承:表示一个类型派生于基类型,它拥有该基类型的所有成员字段和函数.在实现继承中,派生类型采用基类型的每个函数的实现代码,除
-
C# new和override的区别分析
昨天面试问到了new的几种用法以及与Override的区别,有点模糊 回来google下,new的用法有以下3中 1.运算符:初始化对象和调用构造函数 2.修饰符:隐藏基类方法 3.于在泛型声明中约束可能用作类型参数的参数的类型 至于作为修饰符和override的区别,看了下文章不太明白,写了个例子,运行结果,发现了差异,下面分享下代码: using System; using System.Collections.Generic; using System.Linq; using System
-
C++填坑的重写,重载和隐藏的详解
目录 重写 重载 隐藏 总结 重写 重写的定义:重写发生在基类和派生类的继承关系之中,被定义为虚函数的基类成员函数,由派生类进行重新定义和实现,同时隐藏掉基类的方法(即派生类调用该重写方法时,会使用派生类重定义的方法,而非基类方法).例如: #include <iostream> using std::cout; using std::endl; class Base { public: Base(){}; ~Base(){}; virtual void fun() {cout <<
-
C++中的覆盖和隐藏详解
目录 1. 前言 2. 共性 3. 区别 4. 区分 5.参考文章 1. 前言 继承是面向对象编程的重要特性,在c++中,当父类与子类出现同名函数时,会出现两种情况:覆写和隐藏,本文主要讨论c++中这两种情况的特点和使用区别 2. 共性 当子类继承父类,并且子类中有父类同名函数,那么子类将隐藏父类中所有同名函数,不可以对父类中同名函数直接进行访问,此时子类调用父类中函数需要用域操作符:: #include<iostream> using namespace std; class A{ publ
-
Windows窗体的.Net框架绘图技术实现方法
本文实例讲述了Windows窗体的.Net框架绘图技术实现方法,非常实用,具体内容如下: 一般来说,当编写一个典型的Windows 窗体程序时,窗体和控件的绘制.效果等操作是不需要特别加以考虑的.这是为什么呢?因为通过使用 .Net 框架,开发人员可以拖动一系列的控件到窗体上,并书写一些简单的与事件相关联的代码然后在IDE中按F5,一个完完全全的窗体程序就诞生了!所有控件都将自己绘制自己,窗体或者控件的大小和缩放都调整自如.在这里经常会用到的,且需要引起一点注意的就是控件效果.游戏,自定义图表控
随机推荐
- MySQL命令行中给表添加一个字段(字段名、是否为空、默认值)
- 详解js中常规日期格式处理、月历渲染和倒计时函数
- java中使用sax解析xml的解决方法
- 详解iOS 加载本地HTML,css,js
- python实现搜索指定目录下文件及文件内搜索指定关键词的方法
- 利用ASP.NET MVC+Bootstrap搭建个人博客之praise.js点赞特效插件(二)
- php smtp实现发送邮件功能
- python发送邮件接收邮件示例分享
- python抓取京东商城手机列表url实例代码
- Response.Redirect 正在中止线程解决方案
- 仿猪八戒网左下角的文字滚动效果
- 用div+css解决出现水平滚动条问题
- 用Ruby进行CGI编程的入门指引
- python对url格式解析的方法
- Android应用的多语言支持的实现方法
- Java使用TCP实现数据传输实例详解
- Node.js 制作实时多人游戏框架
- CISCO 技术集合四
- 浅谈RxJava处理业务异常的几种方式
- Java并发底层实现原理学习心得