对象:对象是一个自包含的实体,用一组可识别的特性和行为来标识。
面向对象编程:英文即 object-oriented pragramming 即针对对象来进行编程。
类:具有相同的属性和行为的对象的一个抽象的集合。
实例化:实例化即时对象创建的过程。
字段:字段是满足类设计所需的数据。
属性:是一个方法或一对方法,它适用于以字段方式,使用方法调用的场合。它有两个方法,get和set,get是在调用的时候可以得到类内部的字段或者值的引用。set方法有一个隐式的参数value,可以修改类的成员变量。
面向对象的三大特性:继承,多态,封装。
封装:每个对象都包含其进行操作的所有的信息,不需要依赖其他的对象来完成自己的任务。封装的好处:1、类之间的耦合度大大降低,可复用加强,2、类内部的实现可以任意的修改,无需担心对整个工程造成影响。3、类对外有清晰的接口。
继承:is-a的关系。通俗的讲B是A那么B就继承于A。如果子类继承了父类那么:1、子类拥有父类所有非private属性和功能,2、子类拥有自己的属性和功能。3、子类可以以自己的方式对父类的函数进行重写。当然子类并不继承父类的构造函数,必须显示的调用,利用base关键字。
多态:表示不同的对象可以执行相同的代码,但是执行的效果不同。父类的一个虚拟的方法,然后子类重写其方法即可。
抽象类:在c++中virtual 返回值 函数名() = 0 即可定义一个抽象类,而在c#中,需要加abstract关键字定义抽象类。抽象类注意的几点:1、抽象类不能被实例化。2、继承的子类必须重写抽象类的抽象方法。
接口:接口和抽象类有很大的相同点。它是把一些方法和属性封装成一个特定的集合。在接口中不允许提供任何方法的实现。interface关键字来定义接口。对于接口前面最好加一个I,这是一个规范,因为这样大家就知道你写的是一个接口,不是其他的东西。
关于抽象类和接口的一些区别:
1、抽象类可以给出一些方法的实现,但是接口不能给出任何方法的实现。
2、子类可以实现不封抽象类的方法,但是 接口的成员函数需要实现类必须全部实现。
3、一个类只能继承一个抽象类,但是可以继承多个接口。
4、类是对对象的抽象,抽象类是对类的抽象,而接口是对方法的抽象。
5、行为如果跨越不同的类的对象,那么最好是用接口,如果一些相似的类的对象,则可以用抽象类。