C#---->类和接口
1、类成员,构造函数,类的继承,类的扫描顺序
2、普通基类虚成员(virtual),以基类身份声明的变量并用子类对象进行赋值的,可以实现子类对基类的重写(override)
3、抽象类(abstract),抽象类的实例成员和抽象成员
4、接口(interface),接口隐式实现和显示实现,接口的调用:类继承接口时,显示实现的接口子类的方法修饰符不使用public关键字,隐式实现的要写public 关键字,当多继承时特别是接口成员重名时要使用显示继承
5、抽象类和接口的区别(有了有抽象类为什么要有接口,两者如何使用)
个人理解:
什么叫多态性:在同一个粒度视图层面上对同类事物不加区别的对待而统一处理
一、从大范围上讲
- 使用抽象类是为了实现代码的复用,接口是为了实现多态性。当遇到该使用抽象类还是接口犹豫不决时,先弄清楚自己的动机
- 抽象类表示继承类是什么,接口则表示继承类能做什么
二、在实际声明当中
1、相同点:都可以被继承,都不能被实例化,可以有方法的声明,派生类必须实现未实现的方法
2、不同点:
- 抽象类可以声明字段、实现的方法、属性,接口只能声明属性、索引器、事件、和方法的声明,不能声明字段
- 抽象类只能被单一继承,接口可以多实现(一个派生类只能继承一个抽象类,但是可以实现多个接口)
6、下面是一些相关知识的概念,后面这个链接里面有一些说明,个人觉得说的很好和大家分享一下:
博客园好文分享:https://www.cnblogs.com/binyao/p/4891306.html
- 面向对象编程和面向接口编程(看链接内容)
- 面向对象的核心思想之一:模拟真实世界,把真实世界的事物抽象成类,整个程序靠个各类的实例互相通信互相协作完成系统功能