码迷,mamicode.com
首页 > 其他好文 > 详细

OOP

时间:2016-08-10 19:23:20      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

一、OOP的定义

  面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP的三大特点:封装、继承、多态。

  所谓“对象”在显式支持面向对象的语言中,一般是指类在内存中装载的实例,具有相关的成员变量和成员函数(也称为:方法)。打个比方说,把一个人看做一个对象,那么这个人的年龄、身高、体重等等属性则为成员变量,这个人的特长、爱好(比如我打篮球很厉害)则为成员函数。

二、OOP的特性

  技术分享

  OOP达到了软件工程的三个目标:可复用性、灵活性和可扩展性。从OOP的三大特点:封装、继承、多态中实际体现。

  1、封装:将客观事物抽象成类,每个类对自身的数据和方法实行protection(private,protected,public)。类和对象本身就是封装的体现,比如说:1、属性封装了字段;2、方法的多个参数封装成一个对象;3、把一堆代码封装到一个类里面;4、把一个功能封装到几个类中。总的来说就是将一些具有相同功能的代码封装到一个程序集中,只保留部分接口和方法与外部联系。

  2、继承:子类自动继承其父类中的属性和方法,并可以添加新的属性和方法或者对部分属性和方法进行重写,使子类变得更简单。继承增加了代码的可复用性和可扩展性。

  通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。

  (1) 继承概念的实现方式有三类:实现继承、接口继承、可视继承。

  [1] 实现继承是指直接使用基类的属性和方法而无需额外编码的能力;

  [2] 接口继承是指仅使用属性和方法的名称,但是子类必须提供实现的能力;

  [3] 可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。

  (2) 抽象类和接口

  [1]抽象类:又叫抽象基类,在定义的时候使用 abstract 关键字标记的一般类.他可包含一般类所包含的所有特性,例如,字段,属性,方法;另外他还包含一个很特殊的方法,叫抽象方法(这些方法基本上是没有执行代码的函数标题,而派生于该类的类就必须提供执行的代码)。抽象类不能被实例化,主要用在类的定义和部分实现这方面,所以他需要在子类中完整的扩充并实现功能.
  抽象方法:  当类中的方法在声明的时候加上 abstract 关键字的时候,他就被我们称为抽象方法,但是有个很重要的提醒,只有在抽象类和接口中才可以使用抽象方法.

public abstract class ParentClass
{   
  public abstract void GoTo(); 
} 

public class ChildClass : ParentClass
{ 
  public override  void GoTo() 
   { 
     //实现上面抽象方法 
   } 
}

  [2] 接口:其实是一种特殊的抽象类,用 Interface 关键字标记,其定义没有 class 关键字,它可以包含方法和属性和事件,但是方法也只能是虚拟方法,任何派生于该接口的类就必须提供执行的代码,任何接口成员前面都不能加修饰符。
  接口可用的修饰符有 new  ,  public  ,protected  , internal   ,  private  ,但是同一声明中修饰符只能有一个,new关键字只能出现在镶套接口中,表示复写继承来的同名成员。
  接口和类一样,可以被继承和扩展,但不同的是,类继承不仅说明继承也会实现继承,但是接口继承只是说明继承,通俗的说,派生类可以继承基类的方法实现,而派生接口只是继承父接口的方法说明,却没有继承父接口的实现。

interface Ibook
{ 
      string  GetBookName();
}
public class Employee:Ibook
{
      string  GetBookName()
       { }
}

  

3、多态:多个子类中虽然都具有同一个方法,但是这些子类实例化的对象调用这些相同方法后却可以获得完全不同的结果,多态增加的代码的灵活性。

 

 

  

 

OOP

标签:

原文地址:http://www.cnblogs.com/xinaixia/p/5757873.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!