1、   类的分类:普通基类、抽象基类(abstract  class)1、   类的扫描顺序:a、先近后远 b、(向上扫描)以谁身份声明的变量就在谁身上开始扫描,

2、   扫描的特殊情况:普通基类虚(virtual)成员—(以基类身份声明的变量并以子类对象赋值,先在基类身上扫描,当基类成员被virtual关键字修饰,成为虚成员时向下扫描,当子类扫描对象被override关键字修饰时使用子类成员,如果子类没有重写基类也就是没有override关键字修饰时,转而使用基类自己的方法)

3、   类中的特殊情况:a、抽象类,不能new天生是给人继承的,本身有实例成员和抽象成员,实例成员在子类身上得到了调用,抽象成员(抽象方法没有得到实现,也就是没有方法体,也就是没有花括号,子类继承抽象基类就必须实现抽象基类的抽象成员(子类要重写(override)基类抽象成员)—子类必须实现基类的抽象成员),子类继承抽象基类时的一句话:以基类身份声明的变量并以子类对象赋值(因为抽象基类不能new),变量可以直接使用抽象基类实例成员,基类中有需要的方法但是这个抽象成员没有具体的实现,所以会向下扫描,扫描到同名重写基类的方法就使用子类自己的

4、   类的成员:a、(virtual关键字修饰:虚成员可以被子类重写(override))

5、   类的成员:a、普通基类虚成员 b、抽象基类实例成员和抽象基类纯虚(抽象)成员

6、   构造函数:函数名和类名相同且没有返回类型,构造函数是用来new的,自己声明构造函数可以带参数,如果自己没有写构造函数,编译环境会为我们自动生成一个无参的构造函数以便调用

7、   实例成员、静态成员:静态成员和类型直接挂钩(不用new直接调用),实例成员和“对象”(new出来的实例相关)——泛型约束中的调用(泛型约束:基类约束、构造器约束)

8、   抽象类和接口的区别(建立在相同点上:):抽象类抽象的是一些类( is  a)的关系,接口抽象的是一个个方法

9、   接口1:interface关键字修饰,属于纯抽象类。接口定义一些纯虚成员(一个个方法),不能new。

10、   关于接口的使用:a、类继承接口(单接口和多接口)单接口一般使用隐式显示,多接口一般使用显示实现(使用接口名前缀)特别是当两个接口定义了同名的成员(方法)

11、   接口2:a、抽象类的必遵循:实现(继承)接口的类必须实现接口成员 b、以接口身份声明的变量必须以实现了这个接口的类的对象进行赋值(继承了接口的类new出的实例不能点出自己实现接口的方法,只有使用b才能点出来)

12、   以哪个接口身份声明的变量只能点出本接口定义的成员

13、   方法的重载:(举例说明:数值类型相加:整数、浮点数需要调用同一个方法,但是参数不一样):方法名相同,签名不同(签名:参数个数不同,参数类型不同,参数个数和类型相同参数位置不同)也同样构成重载,方法的返回类型不参与重载的辨析(委托的返回类型参与辨析)

C#面向对象中类的继承和扫描顺序和接口的更多相关文章

  1. java面向对象3-继承(继承、抽象类、抽象接口)

    4.继承 面向对象概念-类与对象的关系 封装:指隐藏对象的属性和实现细节,仅对外提供公共访问方式,private-构造方法/构造器-this关键字-static关键字(javadoc制作工具类) -代 ...

  2. .NET面向对象特性之“继承”

    整体简介 1.理解继承——继承关系图 2.实现继承与接口多继承 3.new. virtual.override方法 4.抽象方法和抽象类的继承 5.继承的本质 6.继承的复用性.扩展性和安全性 7.多 ...

  3. 第7.6节 Python中类的继承机制详述

    在本章第一节,介绍了面向对象程序设计的三个特征:封装.继承和多态,前面章节重点介绍了封装和多态,由于Python语言是多态语言,对象的类型不再由继承等方式决定,而由实际运行时所表现出的具体行为来决定, ...

  4. Lua面向对象----类、继承、多继承、单例的实现

    (本文转载)学习之用,侵权立删! 原文地址   http://blog.csdn.net/y_23k_bug/article/details/19965877?utm_source=tuicool&a ...

  5. java面向对象(封装-继承-多态)

    框架图 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程强调的是功能行为 面向对象将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向对象的特点 ...

  6. python中类的继承

    python中类的继承 在python中面向对象编程中实现继承,以下面一个实例进行说明. class SchoolMenber(): # __init__类似于c++中的构造函数 # __init__ ...

  7. Java中类的继承深入剖析

    在Java开发中,我们常常用到继承这一概念,可以说继承是Java这类面向对象编程语言的基石.正是有了继承这个概念,使得我们可以创建分等级层次的类.今天小编就和大家一起来深入聊聊Java语言的继承. 在 ...

  8. Python3 与 C# 面向对象之~继承与多态 Python3 与 C# 面向对象之~封装 Python3 与 NetCore 基础语法对比(Function专栏) [C#]C#时间日期操作 [C#]C#中字符串的操作 [ASP.NET]NTKO插件使用常见问题 我对C#的认知。

    Python3 与 C# 面向对象之-继承与多态   文章汇总:https://www.cnblogs.com/dotnetcrazy/p/9160514.html 目录: 2.继承 ¶ 2.1.单继 ...

  9. javascript面向对象之Javascript 继承

    转自原文javascript面向对象之Javascript 继承 在JavaScript中实现继承可以有多种方法,下面说两种常见的. 一,call 继承 先定义一个“人”类 //人类 Person=f ...

随机推荐

  1. django之路由层

    一 Django中路由的作用 二 简单的路由配置 三 有名分组 四 路由分发 五 反向解析 六 名称空间 七 django2.0版的path 一 Django中路由的作用 URL配置(URLconf) ...

  2. 名称空间2.0path

    Django 1点几跟2点几的区别 2.0path 是什么路径就是什么路径.第一个参数不再是正则表达式. 转换器 path的分组 <int:year> 匹配正整数 <str:year ...

  3. fastclick的介绍和使用

    移动端点击延迟事件 1. 移动端浏览器在派发点击事件的时候,通常会出现300ms左右的延迟 2. 原因: 移动端的双击会缩放导致click判断延迟 解决方式 1. 禁用缩放 `<meta nam ...

  4. Springboot中使用Xstream进行XML与Bean 相互转换

    在现今的项目开发中,虽然数据的传输大部分都是用json格式来进行传输,但是xml毕竟也会有一些老的项目在进行使用,正常的老式方法是通过获取节点来进行一系列操作,个人感觉太过于复杂.繁琐.推荐一套简单的 ...

  5. java 中的Collection

    /* *一. Collection?-------->容器! * * 1.来源于java.util包 非常实用的数据结构! * *二. 方法? * * void clear()删除集合中所有元素 ...

  6. TestNG之测试执行后没有生成默认测试报告(IDEA)

    使用IDEA+TestNG进行测试,没有生成 测试报告,是因为没有勾选监听器使用默认报告,具体操作如下: “Run” -> "Edit Configurations" -&g ...

  7. vue-cli: render:h => h(App)是什么意思

    import Vue from 'vue' import App from './App.vue' Vue.config.productionTip = false new Vue({ render: ...

  8. Mvc校验用户没有登录就跳转的实现

    看字面意思很简单,就是判断用户是否登录了,如果没有登录就跳转到登陆页面. 没错,主要代码如下(这里就不写判断登录了,直接跳转) 首先在控制器中新建一个BaseController public cla ...

  9. vhdl——type

    TYPE 数据类型名 IS 数据类型定义 OF 基本数据类型 TYPE 数据类型名 IS 数据类型定义 常用的用户自定义的数据类型有枚举型,数组型,记录型.其中枚举型的在状态机的描述中经常使用到 ,数 ...

  10. 使用Golang打造自己的http服务器 1.0版本

    package main import ( "io/ioutil" "net/http" "os" ) func main() { args ...