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");

    }

  }

(0)

相关推荐

  • C#中分部类和分部方法的应用

    分部类(Partial Class)在C#2.0引入,分部方法(Partial Method)在C#3.0引入,这两个语法特性都具有相同的特性:将类(或)方法的代码分散在多个地方. 1.分部类的特性和应用 1.1分部类的定义 在定义一个类时,加上partial关键字,此类即成为分部类. 分部类允许将一个类的代码分散于一个以上的源代码文件中. Person.cs代码如下 复制代码 代码如下: namespace PartialClassDemo1 {     public partial clas

  • C#中分部方法和分部类分析

    本文实例分析了C#中分部方法和分部类.分享给大家供大家参考. 具体代码如下: 复制代码 代码如下: using System; namespace Partial {     class Program     {         static void Main(string[] args)         {             A a = new A();         }     } partial class A     {         public A()        

  • 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#中实现抽象类里建立静态方法的解决办法,示例程序如下: public class TestMain { public static void main(String[] args) { AbstractTest.out(); } } 如上面所示的程序是可以运行的. 一般情况下抽象类中可以包含抽象方法和非抽象方法,静态类中只能包含静态成员,所有的静态成员也只能包含在静态类中. 因为静态static的本质是包含abstract和sealed的,所以静态方法可以包含在抽象类中,并通过抽象类

  • C#在运行时动态创建类型的实现方法

    本文实例讲述了C#在运行时动态创建类型的实现方法.是C#项目开发中很实用的技巧.分享给大家供大家参考.具体分析如下: 具体来说,C# 在运行时动态的创建类型是通过动态生成C#源代码,然后通过编译器编译成程序集的方式实现动态创建类型的. 主要功能代码如下: public static Assembly NewAssembly() { //创建编译器实例. provider = new CSharpCodeProvider(); //设置编译参数. cp = new CompilerParamete

  • C#中子类调用父类的实现方法

    本文实例讲述了C#中实现子类调用父类的方法,分享给大家供大家参考之用.具体方法如下: 一.通过子类无参构造函数创建子类实例 创建父类Person和子类Student. public class Person { public Person() { Console.WriteLine("我是人"); } } public class Student : Person { public Student() { Console.WriteLine("我是学生"); } }

  • C#实现为类和函数代码自动添加版权注释信息的方法

    本文实例讲述了C#实现为类和函数代码自动添加版权注释信息的方法,分享给大家供大家参考之用.具体方法如下: 以web项目为例: 一:给类加注释 1.在visual studio 的安装路径下 如:[盘符]:/Program files/Microsoft Visual Studio 8/Common7/IDE/ItemTemplates/web/cshare/2052/class.zip ,将里面的class.cs改为: /*------------------------------------

  • 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,一个完完全全的窗体程序就诞生了!所有控件都将自己绘制自己,窗体或者控件的大小和缩放都调整自如.在这里经常会用到的,且需要引起一点注意的就是控件效果.游戏,自定义图表控

随机推荐