博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#面向对象中类的继承和扫描顺序和接口
阅读量:5817 次
发布时间:2019-06-18

本文共 1279 字,大约阅读时间需要 4 分钟。

 

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

转载于:https://www.cnblogs.com/fllowerqq/p/8824196.html

你可能感兴趣的文章
Web前端JQuery入门实战案例
查看>>
java B2B2C Springboot电子商城系统- SSO单点登录之OAuth2.0 登出流程(3)
查看>>
USB 通信原理
查看>>
7zZip zip RAR iOS
查看>>
date命令的详细用法!
查看>>
UiAutomator源码分析之UiAutomatorBridge框架
查看>>
python 开发之selenium
查看>>
Xcode3.2.5中找不到Mac OS X - Command Line Utility -...
查看>>
css的div垂直居中的方法,百分比div垂直居中
查看>>
如何理解EM算法
查看>>
nginx 域名跳转一例~~~(rewrite、proxy)
查看>>
linux用户家目录无损迁移到独立硬盘
查看>>
文件查找
查看>>
shell编程前言(一)
查看>>
5、centos7.*配置yum的EPEL源及其它源
查看>>
JSON前后台简单操作
查看>>
shell中一些常见的文件操作符
查看>>
CentOS 7 装vim遇到的问题和解决方法
查看>>
JavaScript基础教程1-20160612
查看>>
使用第三方类、库需要注意的正则类RegexKitLite的使用
查看>>