重载: 就是写多个同名方法,参数个数不同或类型不同或返回值不同

重写:子类中实现的方法必须加override关键词   普通非抽象父类需要virtual 抽象类里面抽象方法abstract 接口的实现也是重写(更准确的应该说是实现,但是子类不需要override)
隐藏:等同于覆盖,A类(父类)可以普通实现,B类继承,new 一个和A中一样的方法。可以说算是重写方法的实现,但是不会修改到A中的方法。
 
具体区别如下:
static void Main(string[] args)
{
B b = new B();
b.ClassA();
A a = b;
a.ClassA(); Console.WriteLine("\n"); B2 b2 = new B2();
b2.ClassA2();
A2 a2 = b2;
a2.ClassA2(); Console.ReadKey();
}
} //
class A
{
public void ClassA()
{
Console.WriteLine("A.ClassA()");
}
}
class B : A
{
new public void ClassA()
{
Console.WriteLine("B.ClassA()");
} } //
class A2
{
public virtual void ClassA2()
{
Console.WriteLine("A2.ClassA2()");
}
}
class B2 : A2
{
public override void ClassA2()
{
Console.WriteLine("B2.ClassA2()");
}
} }

C++也是类似

class A
{
public:
virtual void print()
{
printf("AAAAAA");
}
}; class B :public A
{
public:
void print()
{
printf("BBBBB");
}
}; int main()
{ B *b = new B(); b->print();
A *a = b;
a->print();
return 0;
}

  

 

C# 中 重载,重写,隐藏的区别的更多相关文章

  1. c++中 重载 覆盖 隐藏的区别 附加 mutable笔记

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

  2. C++中重载、重写(覆盖)和隐藏的区别实例分析

    这篇文章主要介绍了C++中重载.重写(覆盖)和隐藏的区别,是C++面向对象程序设计非常重要的概念,需要的朋友可以参考下 本文实例讲述了C++中重载.重写(覆盖)和隐藏的区别,对于C++面向对象程序设计 ...

  3. C++中重载、重写(覆盖)和隐藏的区别

    转载自:https://blog.csdn.net/zx3517288/article/details/48976097 基本概念: 重载:是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个 ...

  4. c++ --> 重载、重写(覆盖)和隐藏的区别

    重载.重写(覆盖)和隐藏的区别 一.重载 重载从overload翻译过来,是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心 ...

  5. C++概念分析之 重载、重写(覆盖)和隐藏的区别

    一.基本概念区别: 重载:是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型. 隐藏:是指派生类的函数屏蔽了与其 ...

  6. C++中重载、覆盖和隐藏的区别,以及适用场景

    一.重载.覆盖和隐藏的区别 二.适用场景 1.重载: 适用于不同的数据类型都需要使用到的功能函数.以数据相加的函数为例,可以在同一个文件内提供以下的重载函数以支持同样的功能: int add(int, ...

  7. java中重载和覆盖(又称重写)的区别

    初次见到这两个单词并没有什么特别的感觉,但是时间长了,却发现书上一会儿用override,一会儿又用overload,搞得我的迷迷糊.于是就做了个总结,希望能对和我一样对这两个概念模糊不清的网友有一个 ...

  8. Java中重载和重写的区别

    重载 overloading 1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型.重载是一个类中多态性的一种表现. 2) Java的方法重载,就 ...

  9. java 中重载(Overload)和重写(Override)的区别

    首先重载和重写是应用于两个不同场景下面的两种不同的手段: 两者各自的特征: 重载(Overload):首先是位于一个类之中或者其子类中,具有相同的方法名,但是方法的参数不同,返回值类型可以相同也可以不 ...

随机推荐

  1. 记录OC学习的一点一滴(一)

    练习代码: 代码一:(面向过程的OC) // // main.m // Class01Test01 // // Copyright (c) 2014年 levi. All rights reserve ...

  2. Event notifications

    SQL Server 事件通知(Event notifications) 2013-12-13 17:21 by 听风吹雨, 333 阅读, 3 评论, 收藏, 编辑 一. 背景 SQL Server ...

  3. APNs功能之Node.js和Mysql应用总结

    APNs功能之Node.js和Mysql应用总结 这篇文档主要是总结Node.js和Mysql的学习心得体会.当然也可以看作是此前所写的消息推送服务的续篇. 简单描述下应用背景,我们的应用需要实现苹果 ...

  4. 安装升级System.Web.Optimization.dll

    今天在使用backload时,VS提示solution所引用的System.Web.Optimization.dll 版本低,编译不过,于是便删掉,从新添加引用,悲剧的是在添加引用窗口中没找到,在Nu ...

  5. C#快速学习

    C#快速学习笔记(译)   下面是通过代码快速学习C#的例子. 1.学习任何语言都必定会学到的hello,world! using System; public class HelloWorld { ...

  6. IceMx.Mvc 我的js MVC 框架六、完善植物大战僵尸(向日葵登场)

    有图有真相,废话不多说上图 看到园友的支持很受鼓舞,更觉得应该做下去,虽然自己是个菜鸟,但也应该共享自己的心得,只要有人获益那就是值得的. 我的下载需要csdn论坛的1个积分,之所以不完全免费出去是因 ...

  7. ios学习笔记(一)之Object-C

    一:Objective-C语言基础 二:Objective-C类与继承和协议 一:Objective-C语言基础: 1.1)#import 包含头文件  与#include 作用相同 1.2)Obje ...

  8. 如何在ASP.NET大型应用系统的模块化开发实现多版本程序集并存支持[转载]

    如何在ASP.NET大型应用系统的模块化开发实现多版本程序集并存支持 这是我最近碰到的一个问题,有一家企业.NET程序员有80多人,产品线很多也很复杂.对于这样的产品,他们采用了模块化开发来实现复用与 ...

  9. SQL Server 性能优化之——系统化方法提高性能

    SQL Server 性能优化之——系统化方法提高性能 阅读导航 1. 概述 2. 规范逻辑数据库设计 3. 使用高效索引设计 4. 使用高效的查询设计 5. 使用技术分析低性能 6. 总结 1. 概 ...

  10. 用T4消除代码重复,对了,也错了

    用T4消除代码重复,对了,也错了 背景 我需要为int.long.float等这些数值类型写一些扩展方法,但是我发现他们不是一个继承体系,我的第一个思维就是需要为每个类型重复写一遍扩展方法,这让我觉得 ...