`
wenzongliang
  • 浏览: 461554 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

覆盖与隐藏

 
阅读更多

覆盖是占用了原来的位置,隐藏只是存在找不到

例如:

class A{

void fun1(){

int v;

}

 

static void fun2(){

int v;

}

}

 

class B extends A{

void fun1(){

int u;

}

 

static void fun2(){

int u;

}

}

 

 

A a=new B();

 

a.fun1()//调用的是B中的fun1因为父类的被覆盖了不存在了,只有通过特殊手法找到。

a.fun2()//调用的是A中的fun2因为fun2只是被B暂时隐藏,还存在。

 

 

 

关于C++类成员函数的重载、覆盖、隐藏与virtual关键字

 

最近看<<高质量C++>>时读到的关于成员函数的重载/覆盖/隐藏,把我的一点理解写出来,希望大家批评与指正.

1. 重载、覆盖与隐藏

1).重载:成员函数具有以下的特征时发生“重载”

A.相同的范围(同一个类中)

B.函数的名字相同

C.参数类型不同(不能进行隐式类型转换)

D.Virtual关键字可有可无

2).覆盖(也叫“继承”):指派生类函数覆盖基类函数,特征是:

A.不同的范围(分别位于基类与派生类中)

B.函数名字相同

C.参数相同

D.基类函数必须有virtual关键字

3).隐藏:是指派生类的函数屏蔽了与其同名的基类函数,规则如下:

A.如果派生类的函数与基类的函数同名,但是参数不同,此时不论有无virtual关键字,基类的函数都将被隐藏,注意别与重载混淆)

B.如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字,此时基类的函数被隐藏(注意别与覆盖混淆)

我的话费充值店-各种面额

电信100元仅售98.60 
联通100仅售99.00
移动100仅售99.30

分享到:
评论

相关推荐

    C++成员函数的重载、覆盖与隐藏

    文件详细描述了C++成员函数的重载、覆盖与隐藏技术,对于初学C++的人员很有帮准,也是我们程序猿参考、学习的重要资料。

    方法和变量在继承时的覆盖和隐藏问题

    首先,需要明确几个概念:覆盖与隐藏。方法覆盖发生时,子类提供一个与父类中某个方法签名完全相同(包括返回类型、方法名、参数列表)的新方法,用来替代父类的同名方法。而方法隐藏则意味着子类定义了一个与父类...

    C++ 中函数重载、覆盖与隐藏详解

    C++ 中函数重载、覆盖与隐藏详解 函数重载(function overload)是C++语言中的一种机制,它允许在同一个可访问区域内部声明具有相同函数名称但具有不同参数列(参数的类型、参数的个数、参数的顺序)的多个函数。...

    SigalHu#MyBlog#类中成员函数的重载、覆盖与隐藏[转]1

    原文:C++类成员函数的 重载、覆盖和隐藏区别重载成员函数被重载的特征:相同的范围(在同一个类中)函数名字相同参数不同virtual 关键字可有可无void s

    类成员函数的重载、覆盖与隐藏之间的区别总结

    在面向对象编程中,类成员函数的重载、覆盖与隐藏是三个重要的概念,它们各自有不同的特点和作用,下面将详细解析这三个概念的区别。 首先,我们来看**成员函数的重载(Overload)**。成员函数重载发生在同一个作用...

    C++全套学习课件函数的覆盖、隐藏和重载.pdf

    在C++编程语言中,函数的覆盖(Overriding)、隐藏(Hiding)和重载(Overloading)是三个重要的概念,它们与面向对象编程的多态性紧密相关。理解并熟练掌握这些概念对于编写高效、可维护的代码至关重要。 1. 函数...

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

    Java中的方法覆盖(Override)和隐藏(Hiding)是面向对象编程中的两个重要概念,它们涉及到多态性和运行时类型识别(RTTI)。在Java中,这两种情况在处理继承关系时会产生不同的行为。 1. **方法覆盖(Override)*...

    Java方法继承、方法重载、方法覆盖总结

    7. **覆盖与隐藏的区别**: 当子类中定义了一个与父类同名但参数列表不同的方法时,这实际上是一种“隐藏”,而非覆盖。 #### 四、super关键字 **super关键字**在Java中用于指代当前对象的直接父类对象。它主要用于...

    成员函数的重载、覆盖与隐藏详细解析

    1 重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生...

    重载、覆盖和隐藏

    ### 重载、覆盖和隐藏:面向对象编程中的三大概念 在面向对象编程中,类成员函数的重载(Overloading)、覆盖(Overriding)和隐藏(Hiding)是三个非常重要的概念,它们帮助程序员更好地管理和扩展代码。下面将...

    c#的重载、覆盖、隐藏

    ### C#中的重载(Overloading)、覆盖(Overriding)与隐藏(Hiding) #### 一、概述 在面向对象编程语言C#中,方法的重载(Overloading)、覆盖(Overriding)以及隐藏(Hiding)是实现多态性的三种重要机制。这三种机制都...

    C++中的多态、重载、覆盖与隐藏

    上网看C++的一些资料,突然看到虚函数,突然让我回想起继承,覆盖什么的,决定总结一些资料,加上自己的体会写一篇。  1、C++中的虚函数(virtual function)  虚函数是C++中用于实现多态(polymorphism)的...

    重载、覆盖、多态与函数隐藏

    隐藏与覆盖不同,因为覆盖要求派生类中的函数与父类中的函数有完全相同的签名。 在提供的代码示例中,我们可以看到派生类如何通过重载、覆盖和隐藏来改变函数的行为。例如,在第一个示例中,派生类`Derive`定义了一...

    C++中的函数重载、覆盖与隐藏

    在谈论C++中的函数重载、覆盖和隐藏之前,先回顾下函数的基础知识。  函数的声明包括函数的返回值类型,函数名称,参数列表(参数的类型、参数的个数、参数的顺序)。例如,声明一个两个整数之和的函数,int iAdd...

    C++的重载、隐藏、覆盖规则

    在C++编程语言中,重载(Overloading)、隐藏(Hiding)和覆盖(Overriding)是三个重要的概念,它们涉及到函数和运算符在不同情况下的多态性表现。理解并掌握这些规则对于编写高效、可维护的代码至关重要。 ### 1....

Global site tag (gtag.js) - Google Analytics