文档章节

C# 语法练习(10): 类[二] - 继承、覆盖、多态、隐藏

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 229
阅读 10
收藏 0
点赞 0
评论 0

继承:
using System;

class Parent
{
    public void Msg() { Console.WriteLine("Parent"); }
}

class Child : Parent { }

class Program
{
    static void Main()
    {
        Parent ObjParent = new Parent();
        Child ObjChild = new Child();

        ObjParent.Msg(); //Parent
        ObjChild.Msg();  //Parent

        Console.ReadKey();
    }
}

 
 
 
 
 

 

 

  

覆盖:
using System;

class Parent
{
    public virtual void Msg() { Console.WriteLine("Parent"); }
}

class Child : Parent 
{
    public override void Msg() { Console.WriteLine("Child"); }
}

class Program
{
    static void Main()
    {
        Parent ObjParent = new Parent();
        Child ObjChild = new Child();

        ObjParent.Msg(); //Parent
        ObjChild.Msg();  //Child

        Console.ReadKey();
    }
}

 
 
 
 
 

 

 

  

多态:
using System;

class Parent
{
    public virtual void Msg() { Console.WriteLine("Parent"); }
}

class Child1 : Parent 
{
    public override void Msg() { Console.WriteLine("Child_1"); }
}

class Child2 : Parent
{
    public override void Msg() { Console.WriteLine("Child_2"); }
}

class Program
{
    static void Main()
    {
        Parent Obj1 = new Child1();
        Parent Obj2 = new Child2();

        Obj1.Msg(); //Child_1
        Obj2.Msg(); //Child_2

        Console.ReadKey();
    }
}

 
 
 
 
 

 

 

  

隐藏:
using System;

class Parent
{
    public void Msg() { Console.WriteLine("Parent"); }
}

/* 有意隐藏应使用 new 关键字 */
class Child1 : Parent 
{
    new public void Msg() { Console.WriteLine("Child_1"); }
}

/* 无意隐藏会有提示, 但可用 */
class Child2 : Parent
{
    public void Msg() { Console.WriteLine("Child_2"); }
}

class Program
{
    static void Main()
    {
        Parent Obj1 = new Child1();
        Parent Obj2 = new Child2();
        Child1 Obj3 = new Child1();
        Child2 Obj4 = new Child2();

        Obj1.Msg(); //Parent
        Obj2.Msg(); //Parent
        Obj3.Msg(); //Child_1
        Obj4.Msg(); //Child_2

        Console.ReadKey();
    }
}

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2009/01/02/1367016.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
重新学.Net[八]——CLR的面向对象实现

懒了好几天,尽玩去了。恩,赶在年前,把想写的再写一点^_^。 .Net目的之一是建立一个面向对象的编程平台。CLR当然需要支持面向对象的各个特征,确切一些,CLR基本可以视为一个完全面向对象的...

余二五 ⋅ 2017/11/22 ⋅ 0

JAVA笔记(四)

面向对象的三大特征:封装、继承、多态。 java中的封装 封装,一个对象和外界的联系应当通过一个统一的接口,应当公开的公开,应当隐藏的隐藏。(对象的属性应当隐藏),一个对象的内部是透明...

dongzhumao ⋅ 2009/12/27 ⋅ 0

深入浅出话多态(上)——具体而微

小序 前几天写了一篇《深入浅出话委托》,很多兄弟姐妹发Mail说还算凑合,又有兄弟说能不能写一篇类似的文章,讲解一下什么是“多态”。一般情况下我写文章都是出于有感而发:一来做个思考的...

余二五 ⋅ 2017/11/15 ⋅ 0

Python-面向对象

(个人感觉真心不错 ,转过来一起学习一下 ) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分...

ala9981 ⋅ 2016/03/20 ⋅ 0

初试刀 浅谈Java和C#在面向对象上语法的区别

 做了几年了开发一直没有总结什么,回到了家乡的小城做了一名培训班的教员,教授软件开发的知识。细小的知识从头细细嚼来,别有一番滋味。或是以前遗漏的太多,或是确实没有系统的学习过,教...

夜默 ⋅ 2013/06/18 ⋅ 0

Python基础6-1 面向对象编程

概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过...

jinmy001 ⋅ 2017/07/21 ⋅ 0

C语言面向对象编程(一):封装与继承

最近在用 C 做项目,之前用惯了 C++ ,转回头来用C 还真有点不适应。 C++ 语言中自带面向对象支持,如封装、继承、多态等面向对象的基本特征。 C 原本是面向过程的语言,自身没有内建这些特性...

follitude ⋅ 2016/05/04 ⋅ 0

python基础---面向对象编程

面向对象 面向过程与面向对象的对比: 面向过程:核心是过程二字,过程指的是问题的解决步骤,即先干什么再干什么,基于面向过程去设计程序就好比在设计一条流水线,是一种机械式的思维方式 ...

迟到的栋子 ⋅ 2017/08/31 ⋅ 0

C#3.0面向对象程序设计一

文章首发 http://www.imooc.com/article/22105 我还在简书。。。。。。 面向对象三大特征,继承,封装,多态 1.0 封装,通过定义类并且给类的属性和方法加上访问修饰符来抽象事物的本质特征 ...

东风冷雪 ⋅ 2017/12/15 ⋅ 0

C++多态分析

多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphism),字面意思多种形状。 C++多态性是通过虚函数来实现的,...

li_wen01 ⋅ 2017/08/05 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

win环境下jdk7与jdk8共存配置

1.jdk安装包 jdk安装包 安装步骤略 2.jdk等配置文件修改 在安装JDK1.8时(本机先安装jdk1.7再安装的jdk1.8),会将java.exe、javaw.exe、javaws.exe三个文件copy到了C:\Windows\System32,这...

泉天下 ⋅ 12分钟前 ⋅ 0

windows profesional 2017 build problem

.net framework .... https://stackoverflow.com/questions/43330915/could-not-load-file-or-assembly-microsoft-build-frameworkvs-2017...

机油战士 ⋅ 46分钟前 ⋅ 0

python3中报错的解决方法(长期更新)

1、ImportError: No module named ‘DjangoUeditor’ 出错原因:安装DjangoUeditor库适用于python2,需要下载适用python3的 下载地址:https://github.com/twz915/DjangoUeditor3 2、python3......

xiaoge2016 ⋅ 51分钟前 ⋅ 0

数据结构与算法之双向链表

一、双向链表 1.双向链表的结点结构 typedef struct DualNode{ ElemType data; struct DualNode *prior; // 前驱结点 struct DualNode *next; // 后继结点}DualNode, *DuL...

aibinxiao ⋅ 今天 ⋅ 0

五大最核心的大数据技术

大数据技术有5个核心部分,数据采集、数据存储、数据清洗、数据挖掘、数据可视化。关于这5个部分,有哪些核心技术?这些技术有哪些潜在价值?看完今天的文章就知道了。 大数据学习群:7165810...

董黎明 ⋅ 今天 ⋅ 0

PhpStorm 头部注释、类注释和函数注释的设置

首先,PhpStorm中文件、类、函数等注释的设置在:setting-》Editor-》FIle and Code Template-》Includes下设置即可,其中方法的默认是这样的: /**${PARAM_DOC}#if (${TYPE_HINT} != "v...

nsns ⋅ 今天 ⋅ 0

spring.net AOP

http://www.springframework.net/doc-latest/reference/html/aop-quickstart.html https://www.cnblogs.com/wujy/archive/2013/04/06/3003120.html AOP系列(一)——ProxyFactoryObject 显式创......

whoisliang ⋅ 今天 ⋅ 0

【HAVENT原创】创建 Dockerfile 生成新的镜像,并发布到 DockerHub

注意:Win7 与 Win10 的版本存在差异,Win7 版本使用 Docker Quickstart Terminal 进入控制台,Win10下面直接用管理员权限打开控制台或者 PowerShell 即可;另外 Win7 下面只能访问 C盘,/ap...

HAVENT ⋅ 今天 ⋅ 0

pom.xml出现web.xml is missing ...解决方案

提示信息应该能看懂。也就是缺少了web.xml文件,<failOnMissingWebXml>被设置成true了。 搜索了一下,Stack Overflow上的答案解决了问题,分享一下。 目前被顶次数最多的回答原文如下: This...

源哥L ⋅ 今天 ⋅ 0

js时间戳与日期格式之间相互转换

1. 将时间戳转换成日期格式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 // 简单的一句代码 var date = new Date(时间戳); //获取一个时间对象 /** 1. 下面是获取时间日期的方法,需要什么样的格式自己...

Jack088 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部