<<设计模式C#>>学习笔记一:面向对象编程准备知识

接口和抽象类概述

  1. 接口是类的蓝图
  2. 在OOP中,接口是稳定,而抽象类和其子类是变化的.

接口和抽象类的区别

  1. 接口是"behaves like a",抽象类一个是"is a"

  2. 一个抽象类可以包括非抽象方法,和数据成员,接口的所有成员在效果上都是抽象的.

  3. 抽象类可以有构造器(不过通常是protected的),而接口不能.

  4. 接口成员的访问修饰符只能是public,而抽象类可以有定义其他访问修饰符(private , protected).

  5. 一个类可以现实任意多个接口,但只能继承自一个抽象类.

  6. 接口不能有数据成员,而抽象类可以.

 虚方法和重写

  1. .NET中如果基类的方法,或属性不声明成虚的,则子类无法重写基类的方法或属性.(在java,默认所有方法都是虚的,方便呀*_*,子类直接覆盖基类的)
  2. 继承非虚方法是,.NET默认会隐藏其基类的方法,给出一个警告.
  3. 虚方法和重写表达的语意就是多态.

两句闲话


以前,我有一次面试,人家让我说出抽象类,接口,虚方法,重写的用途和使用场景,我当时没答出来.现在想想真的很不应该,面向对象的知识这么重要,我们很多人都没有掌握好.我现在还在模索中...

另一道题是,脱离IDE,完全用文本编程器,写一个Windows Forms程序:两个textbox,三个button,排列整齐,按下button显示messagebox,用命令行编译并运行效果.还好,这一道我给他整出来了.

原文地址:https://www.cnblogs.com/rockniu/p/895213.html