• 1. C#多态、抽象类、接口多态(覆盖)是随着继承产生的,是面向对象语言实现软件可扩展性的重要机制。
  • 2. 多态C#的引用变量有两个类型,一个是编译时的类型,一个是运行时的类型,编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋值给该变量的对象决定。如果编译时类型和运行时类型不一致,就会出现多态性。
  • 3. (本页无文本内容)
  • 4. 多态子类包含与父类同名方法的现象成为覆盖,C#的多态性就是通过对父类方法的覆盖实现的。 方法的覆盖要遵循:返回类型相同,方法名相同,形参列表形同。 普通方法的调用由对象的编译时类型决定。 覆盖方法的调用由对象的运行时类型决定。
  • 5. (本页无文本内容)
  • 6. (本页无文本内容)
  • 7. 抽象类如果一个类不与具体的事物相联系,而只是表达一种抽象的概念,仅仅是作为其派生类的一个基类,这样的类就是抽象类,在抽象类中声明方法时,如果加上abstract时就是抽象方法。
  • 8. 抽象类
  • 9. 抽象类抽象类与非抽象类的主要区别: 抽象类不能直接被实例化 抽象类中可以包含抽象成员(当然也可以包含其他类型的成员:属性、事件、普通方法等),但非抽象类中不可以
  • 10. 抽象类如果一个子类继承自一个抽象类,该子类没有实现其父类的所有的抽象方法,则该子类仍然是抽象类。
  • 11. 接口接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为。接口可有方法、属性、事件和索引器或这四种成员的任何组合类型,但不能包含字段。
  • 12. 接口具有哪些特点呢? ·接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员(说明:如类A继承接口B,那么A中必须实现B中定义的属性,方法等); ·不能直接实例化接口; ·接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成员都被定义为公有的。除此之外,不能包含任何其他的成员,例如:常量、域、构造函数、析构函数、静态成员。 ·接口不包含方法的实现; ·类和接口可以从多个接口继承(弥补单继承); ·接口自身可以继承多个接口;
  • 13. 接口
  • 14. (本页无文本内容)
  • 15. 接口
  • 16. 接口与抽象类的区别(语法上)1.抽象类是一个不完全的类,需要进一步专业化.接口只是一个行为的规范或规定; 2.接口基本上不具备继承的任何具体特点,它仅仅承诺了能够调用的方法; 3.一个类一次可以实现若干个接口,但是只能扩展一个父类 4.接口可以用于支持回调,而继承并不具备这个特点.
  • 17. 接口与抽象类(设计思想上)
  • 18. 面向接口编程接口体现的是一种规范和实现分离的哲学,充分利用接口可以降低程序各个模块之间的耦合,从而提高系统的可扩展性和可维护性。