也谈OOP的一些概念
其中OOP(面向对象编程)这个东西虽然很丰富,在编码的过程中我们也肯定有用过,可是到底用的好用不好是另外的一些事。既然是好的东西,那为什么用不好呢?”万丈高楼平地起“,概念很重要。今天趁着还没有睡意,我就用比较的方法把这些概念整理一下,也当是自己巩固一下吧!
一。抽象类与接口
相同点:1.都不能被实例化,都可以通过继承实现其抽象方法;
2.都是面向抽象编程的技术基础;
不同点:1.接口支持多继承,也就是说一个类可以实现多个接口;抽象类不能实现多继承;
2.接口只能定义抽象规则或对象;抽象类即可以定义抽象的,也可以提供一些已经实现的成员或方法;
3.接口只包含方法、属性、索引器、事件的签名,但却不能定义字段和包含实现的方法;抽象类可以
定义字段、属性和包含有实现的方法;
4.接口属于值类型;抽象类属于引用类型;
二。虚方法与抽象方法
相同:都可以在派生类中重写;
不同点:虚方法在基类中有实现的部分,在派生类中可重写也可不重写;而抽象方法在基类中没有实现的部分,
在派生类中 必须重写;
三。重载与重写[override]
重载就是方法的名称相同,参数的个数或类型不同,进行多次重载以实现不同的需求;
重写就是对基类中函数的重写,为了实现具体的功能;
不同点:1.方法的重写是子类和父类的关系,属于垂直关系;方法的重载是同一个类中方法之间的关系,属于水平关系;
2.重写只能有一个方法,或者说只能有一对方法产生关系;方法的重载是多个方法之间的关系;
3.重写要求参数列表相同;重载要求参数列表不同;
以上只是自己一些浅薄的认识,欢迎大家指正批评。