所有的类都派生自object类

除了特殊的类object ,所有的类都是派生类,即使它们没有基类的规格说明.类object是唯一的非派生类,因为它是继承层次结构的基础.

一个类声明的基类规格说明只能有一个单独的类.这里称为单继承

虽然类只能继承一个基类,但继承的层次没有限制.也就是说,作为基类的类可以派生来自另一个类,而它又派生来自另一个类,一直下去直到object

派生类的方法和基类的方法有相同的签名和返回类型

基类使用virtual标注

派生类的方法使用override标注

默认情况下,在对象被构造时候,基类的无参构造函数被调用,但构造函数可以被重载,所以基类可能有一个或者一个以上的构造函数,如果希望派生类使用一个指定的基本构造函数而不是无参构造函数,必须在构造函数初始化语句使用它

类的访问修饰符

类可以被其他的类看到并访问,类的可访问性有两个级别:public和internal

标记为public可以被系统任何程序集的代码访问.要使一个类对其他程序集可见,使用public访问修饰符

标记为internal的类只能被它所在程序集内看到

成员的访问修饰符

有五个访问修饰符:  公有的  私有的  受保护的  内部的  受保护内部的

必须对每个成员指定成员访问级别.如果不指定某个成员的访问级别那么他的隐式的访问级别是private

public访问级别限制性最少 所有的类,包括程序集内部的类和外部的类都可以自由地访问成员

protected访问级别如同private级别访问级别,除了一点,它允许派生类该类的类访问该成员

抽象成员

抽象成员是被设计用来被覆盖函数成员,抽象成员有以下特征

它被用abstract修饰符标记

他没有实现代码块.抽象成员的代码块被分号代替

抽象类

抽象类只能被其他类的基类,抽象类就是被设计来被继承的;

不能创建抽象类的实例

抽象类使用abstract修饰说明

密封类

密封类只能被做独立的类,它不能被用作基类

密封类使用sealed修饰符标注

静态类

静态类是一种类,在那里所有成员都是静态.静态类用于分组不受实例数据影响的数据和函数,静态类的一个普通的用途可能就是创建一个包含一组数学方法的数据库;

类本身必须标记为static

类的所有成员必须是静态

类可以有一个静态构造函数,但没有实例构造函数,不能创建该类的实例

不能继承静态类它们是密封的

C#图解 (类和继承)的更多相关文章

  1. C#图解教程 第七章 类和继承

    类和继承 类继承访问继承的成员所有类都派生自object类屏蔽基类的成员基类访问使用基类的引用 虚方法和覆写方法覆写标记为override的方法覆盖其他成员类型 构造函数的执行 构造函数初始化语句类访 ...

  2. C#图解教程读书笔记(第7章 类和继承)

    1.所有的类都继承自object 2.如何隐藏基类的成员 要隐藏一个继承的数据成员,需要声明一个新的相同类型的成员,并使用相同的名称. 通过在派生类中声明新的带有相同签名的函数成员,可以隐藏或掩盖继承 ...

  3. 精读JavaScript模式(八),JS类式继承

    一.前言 这篇开始主要介绍代码复用模式(原书中的第六章),任何一位有理想的开发者都不愿意将同样的逻辑代码重写多次,复用也是提升自己开发能力中重要的一环,所以本篇也将从“继承”开始,聊聊开发中的各种代码 ...

  4. UML类图(上):类、继承和实现

    面向对象设计 对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做.伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现.如果要自己设计,无论是给自己看,还是给别人看 ...

  5. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  6. (转)Java:类与继承

    原文地址: http://www.cnblogs.com/dolphin0520/p/3803432.html 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大 ...

  7. iBatis.net 类的继承extends和懒加载

    <resultMaps> <resultMap id="FullResultMap" class="t_c_team_member_permission ...

  8. python 类定义 继承

    0 前言 系统:win7 64bit IDE : python(x,y) 2.7.6.1 IDE集成的解释器:Python 2.7.6 (default, Nov 10 2013, 19:24:18) ...

  9. JS原型继承和类式继承

    前言 一个多月前,卤煮读了一篇翻译过来的外国人写的技术博客.此君在博客中将js中的类(构造)继承和原型继承做了一些比较,并且得出了结论:建议诸位在开发是用原型继承.文中提到了各种原型继承的优点,详细的 ...

随机推荐

  1. Struts2实现文件上传报错(一)

    1.具体报错如下 2014-5-1 23:02:38 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service( ...

  2. AM335x(TQ335x)学习笔记——触摸屏驱动编写

    前面几篇文章已经通过配置DTS的方式完成了多个驱动的移植,接下来我们解决TQ335x的触摸驱动问题.由于种种原因,TQ335x的触摸屏驱动是以模块方式提供的,且Linux官方内核中也没有带该触摸屏的驱 ...

  3. Count:858org.apache.jasper.JasperException: Unable to compile class for JSP

    1.错误描述 Count:858org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurre ...

  4. MySQL语法大全整理的自学笔记

    select * from emp; #注释 #--------------------------- #----命令行连接MySql--------- #启动mysql服务器 net start m ...

  5. 使用vue-cli脚手架初始化Vue项目下的项目结构

    概述 vue-cli是Vue 提供的一个官方命令行工具,可用于快速搭建大型单页应用.该工具提供开箱即用的构建工具配置,带来现代化的前端开发流程.只需几分钟即可创建并启动一个带热重载.保存时静态检查以及 ...

  6. spring ioc(反转控制)

    在Java中,我们建立一个对象的方式是new,有时需要单例,有时需要工厂,而spring中的bean的定义可以直接使用,如scope属性single产生单例对象,prototype产生新对象,bean ...

  7. monkey日志分析

    Monkey测试的og分析,我们可以通过几个关键词来判断测试是否通过.1)Monkey finished打开LOG,查看log的最下端,是否有类似以下字段:## Network stats: elap ...

  8. 三:Linux 的基本命令、

    Ubuntu切换用户 su root sudo passwd root 使用管理员提权修改root 登录密码 连续输入两次即可..... 重置root 用户密码 例:当前登录用户为:ubuntu,但是 ...

  9. LinearRegression 线性回归

    一.预测 先来看看这样一个场景: 假如你手头有一套房子要出售,你咨询了房产中介.中介跟你要了一系列的数据,例如房子面积.位置.楼层.年限等,然后进行一系列计算后,给出了建议的定价. 房产中介是如何帮你 ...

  10. 【BZOJ4196】【NOI2015】软件包管理器(树链剖分,线段树)

    [BZOJ4196][NOI2015]软件包管理器 题面 题目描述 Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你 ...