面向对象的几个基本概念

面向对象中,多态有多种不同的形式,其中参数多态和包含多态称为通用多态,过载多态和强制多态称为特定多态。 消息是发出的一个服务请求
        面向对象中,多态有多种不同的形式,其中参数多态和包含多态称为通用多态,过载多态和强制多态称为特定多态。
 
       消息是发出的一个服务请求。
 
       究竟怎样才算是真正地“面向对象”(Object-Oriented,OO)? Peter Coad和Edward Yourdon提出了下列等式:
       面向对象=对象(object)+类(classes)+继承(inheritance)+消息通信(communication with messages)
       对象:对象(object)是系统中用来描述客观事物的一个实体,它是构成系统的基本单位。
       对象三要素:对象标识、属性和服务。
 
       封装(encapsulation):是对象的一个重要原则。
       它有两层含义:
       第一:对象是全部属性和全部服务紧密结合而形成的一个不可分割的整体;
       第二:对象是一个不透明的黑盒子,表示对象状态的数据和实现操作的代码都被封装在黑盒子里面。
       类:对具有相同属性和服务的一个或一组对象的抽象。类与对象是抽象描述和具体实例的关系,一个具体的对象被称作类的一个实例。
 
       继承与泛化:继承是面向对象方法中重要的概念,用来说明特殊类(子类)与一般类(父类)的关系,通常使用泛化来说明一般类与特殊类之间的关系,它们之间是一对多的关系。
 
       多态性和重载:多态(即多种形式)性则是指一般类中定义的属性或服务被特殊类继承后,可以具有不同的数据类型或表现出不同的行为,通常是使用重载和改写两项技术来实现的。
       多态类型:重载(专用多态)、覆盖(包含多态)、多态变量(赋值多态、强制多态)、泛型(模板、参数多态)。
       重载(专用多态):描述一个函数名称有多种不同实现方式,通常可以在编译时基于类型签名来区分各个重载函数的名称。
       示例:
class OverLoader{
    public void test(int x);
    public void test(int x,double y);
    public void test(string x);
}
       覆盖(包含多态):是重载的一种特殊情况,只发生在父类和子类这一关系中。注:通常签名相同,内容不一样。
       示例:
class Parent{
    public void test();
}
class Child extends Parent{
    public void test(int x);
}
       多态变量(赋值多态、强制多态):声明为一种类型,但实际上却可以包含另一种类型数据的变量。
       示例:
Parent p=new parent();
       泛型(模板、参数多态):它提供了一种创建通用工具的方法,可以在特定的场合将其特化。
       示例:
template<class T> T max()
{
    if(a<b) return b;
    return a;
}
       消息和消息通信:消息是面向对象发出的服务请求,它通常包括提供服务的对象标识、消息名、输入信息和回答信息。消息通信则是面向对象方法学中的一个重要原则,它与对象的封装原则密不可分,为对象间提供了唯一合法的动态联系的途径。
 
       面向对象方法学的优点:
       1、与人类习惯的思维方法一致
       2、稳定性好
       3、可重用性好
       4、较易开发大型软件产品
       5、可维护性好
 
您可能有感兴趣的文章
什么是面向对象?

JavaScript面向对象详解

java之面向对象详解

面向对象思想(详解)

谈谈对面向对象的理解