【求助】隐藏与覆盖的区别

问题描述

/*2008年5月20日16:52:48隐藏与覆盖的区别*/usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespace__20_3{classProgram{classA{publicinta=10;}classB:A{newpublicinta=2;//派生类B中的a到底是隐藏了基类A中的a还是覆盖了基类A中的a?又或者说覆盖与隐藏是同一个意思请指教}staticvoidMain(string[]args){}}}

解决方案

解决方案二:
隐藏staticvoidMain(string[]args){Bb=newB();Console.WriteLine(b.a);//2Console.WriteLine((basA).a);//10}

解决方案三:
学习了!!
解决方案四:
隐藏和覆盖是一样的。你继承一个类,如果父类没有这个方法,你硬要给他加上new关键字的话,就会出现“不需要隐藏”的警告。

时间: 2024-09-24 22:32:23

【求助】隐藏与覆盖的区别的相关文章

重载与覆盖的区别

重载与覆盖的区别1.方法的覆盖是子类和父类之间的关系,是垂直关系:方法的重载是同一个类中方法之间的关系,是水平关系.2.覆盖只能由一个方法,或只能由一对方法产生关系:方法的重载是多个方法之间的关系.3.覆盖要求参数列表相同:重载要求参数列表不同.4.覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定:重载关系,是根据调用时的实参表与形参表来选择方法体的.override可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用.对我们来说最熟悉的

重载(overload)、覆盖(override)、隐藏(hide)介绍与区别

 这三个概念都是与OO中的多态有关系的.如果单是区别重载与覆盖这两个概念是比较容易的,但是隐藏这一概念却使问题变得有点复杂了,下面说说它们的区别吧.        重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同.调用的时候根据函数的参数来区别不同的函数.        覆盖(也叫重写)是指在派生类中重新对基类中的虚函数(注意是虚函数)重新实现.即函数名和参数都一样,只是函数的实现体不一样.        隐藏是指派生类中的函数把基类中相同名字的函数屏蔽掉了.隐藏与另外两个概念表

c++面试常用知识(sizeof计算类的大小,虚拟继承,重载,隐藏,覆盖)

一. sizeof计算结构体 注:本机机器字长为64位 1.最普通的类和普通的继承 #include<iostream> using namespace std; class Parent{ public: void fun(){ cout<<"Parent fun"<<endl; } }; class Child : public Parent{ public: void fun(){ cout<<"Child fun&quo

C#继承类重写与隐藏基类方法的区别

继承|区别 using System; using System.Collections; public class Nevermore60Customer:Customer { public override string GetFunnyString() { return "Nevermore60.Nevenmore!"; }   ----------------------------------------------------------------------------

关于C#中,继承类重写与隐藏基类方法的区别!

继承|区别 using System;using System.Collections; public class Nevermore60Customer:Customer{ public override string GetFunnyString() { return "Nevermore60.Nevenmore!"; } --------------------------------------------------------------------------------

java中重载、覆盖和隐藏三者的区别分析_java

重载:方法名相同,但参数不同的多个同名函数 注意:1.参数不同的意思是参数类型.参数个数.参数顺序至少有一个不同 2.返回值和异常以及访问修饰符,不能作为重载的条件(因为对于匿名调用,会出现歧义,eg:void a ()和int a() ,如果调用a(),出现歧义) 3.main方法也是可以被重载的 覆盖:子类重写父类的方法,要求方法名和参数类型完全一样(参数不能是子类),返回值和异常比父类小或者相同(即为父类的子类),访问修饰符比父类大或者相同 两同两小一大  注意:子类实例方法不能覆盖父类的

Java方法的覆盖与隐藏的区别分析_java

关于隐藏和覆盖的区别,要提到RTTI(run-time type identification)(运行期类型检查),也就是运行期的多态,当一个父类引用指向子类对象的时候,请看下面我编写的一段代码: 复制代码 代码如下: public class RunTime {     public static void main(String[] args) {        Animal a = new Cat();        System.out.println(a.A);        Syst

Java 静态绑定与动态绑定深入分析_java

Java 静态绑定与动态绑定           最近学习java 的知识,对java的静态绑定和动态绑定的学习很是模糊不清,然后就百度一下对其相应的知识进行了总结整理,帮助掌握这部分的知识 程序绑定的概念: 绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来.对java来说,绑定分为静态绑定和动态绑定:或者叫做前期绑定和后期绑定. 静态绑定: 在程序执行前方法已经被绑定(也就是说在编译过程中就已经知道这个方法到底是哪个类中的方法),此时由编译器或其它连接程序实现.例如:C. 针对jav

【C++】C++常见面试题汇总,持续更新中...

1:指针(*).引用(&).解引用(*).取地址(&).的概念和区别 概念: 指针指向一块内存,指针保存的是内存的地址:引用是变量的别名,本质是引用该变量的地址. 解引用是取指针指向的地址的内容,取地址是获得变量在内存中的地址. 区别: (1)引用使用是无需解引用,指针需解引用. (2)引用不能为空,指针可以为空. (3)引用在定义时被初始化一次,之后不可变:指针指向的值和本身的值是可变的,也就是说指针只是一块地址,地址里的东西可变. (4)程序会给指针变量分配内存区域,而引用不需要分配内