所有的类都派生自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. SQLyog键盘快捷方式

    SQLyog键盘快捷方式 连接 Ctrl+M 创建新连接 Ctrl+N 以当前连接属性创建新连接 Ctrl+F4/Ctrl+W 断开当前连接 Ctrl+Tab 切换到下一个连接 Ctrl+Shift+ ...

  2. (二十五)svn的问题

    今天更新代码到svn中的时候出现了错误,准确的说是在操作更新之前的步骤出现了错误,因此对svn有了更近一步的理解.    check:下载svn中的代码到指定的储存路径中:    update:更新s ...

  3. MyEclipse保存出现错误

    1.错误描述 Errors occurred during the build. Errors running builder 'JavaScript Validator' on project 'S ...

  4. Caused by:org.hibernate.HibernateException:Unable to make JDBC Connection

    1.错误描述 Caused by:org.hibernate.HibernateException:Unable to make JDBC Connection[jdbc\:mysql\://loca ...

  5. WPF自学入门(一)WPF-XAML基本知识

    一.基本概念 1.XAML是派生自XML的可扩展应用程序标记语言(Extensible Application Markup Language)由微软创造应用在WPF,Silverlight等开发技术 ...

  6. pycharm short-cut

    Ctrl + the left mouse button Ctrl + Alt + Left/Right if invalid, system setting

  7. javscript eval()的优缺点与web安全防范

    要说JavaScript中最为强大的一个方法便是eval()方法呢,为何如此说呢?因为它就像是一个JavaScript解析器,也就是说它的参数就是一段js代码所构成的字符串,当执行这个函数的时候,会把 ...

  8. JS显示动态的系统时间--JavaScript基础

    1.网页中实时显示当前时间 <!DOCTYPE html><html lang="en"><head> <meta charset=&qu ...

  9. BZOJ 5039: [Jsoi2014]序列维护

    5039: [Jsoi2014]序列维护 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 282  Solved: 169[Submit][Status ...

  10. 通过Java WebService接口从服务端下载文件

    一. 前言 本文讲述如何通过webservice接口,从服务端下载文件.报告到客户端.适用于跨系统间的文件交互,传输文件不大的情况(控制在几百M以内).对于这种情况搭建一个FTP环境,增加了系统部署的 ...