通过学习设计模式对面向对象编程有了更深层次的了解。在《大话设计模式》一书中的第一个设计模式里(简单工厂模式)体会到了自己学习面向对象编程时的历程。
首先要保证代码无错,我想这是大部分初学者的心愿。其次就是代码规范,这一点是很重要的,程序不仅仅是写给自己看的,更需要让别人能看懂。别人能看懂还不行,毕竟编程是已经成本很高的事,要想获得收益,首先想到的就是要降低成本。那么,降低哪些成本呢?当然这就要涉及到程序的维护、扩展和复用,这样才能有效降低成本。而面向对象的编程方法也就应运而生了。众所周知,面向对象有三个特性:封装、继承和多态。
封装
是对象和类概念的主要特征。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏,可以隐藏实现细节,使得代码模块化。
继承
继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。继承可以扩展已存在的代码模块(类);它和封装的目的都是为了——代码重用。
多态
多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态与封装和继承有所不同,它是为了实现接口重用。
实现多态,有两种方式:覆盖、重载。
覆盖:是指子类重新定义父类的虚函数的做法。
重载:是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
但是,重载并不是严格意义上的多态,只不过它可以实现多态的特性而已。
多态必须具备三大特征:子类继承父类,子类覆盖父类,父类指向子类。如果是这样的话,就说明只有继承关系才是多态的先决条件。
多态是基于对抽象方法的覆盖来实现的,用统一的对外接口来完成不同的功能。重载也是用统一的对外接口来完成不同的功能。那么两者有什么区别呢?
重载,是指允许存在多个同名方法,而这些方法的参数不同。重载的实现是:编译器根据方法不同的参数表,对同名方法的名称做修饰。对于编译器而言,这些同名方法就成了不同的方法。它们的调用地址在编译期就绑定了。
多态:是指子类重新定义父类的虚方法(virtual,abstract)。当子类重新定义了父类的虚方法后,父类根据赋给它的不同的子类,动态调用属于子类的该方法,这样的方法调用在编译期间是无法确定的。
不难看出,两者的区别在于编译器何时去寻找所要调用的具体方法,对于重载而言,在方法调用之前,编译器就已经确定了所要调用的方法,这称为“早绑定”或“静态绑定”;而对于多态,只有等到方法调用的那一刻,编译器才会确定所要调用的具体方法,这称为“晚绑定”或“动态绑定”。
多态是指只有到运行时才能确定要执行的代码,即指的是后绑定。
设计模式就是面向对象编程的良好体现,在接下来的学习中,将重点总结设计模式。
分享到:
相关推荐
面向对象的基本概念与特征 ...面向对象的基本特征是对象的封装性、类的继承性和多态性。这些特征使得面向对象方法能够按照人们通常的思维路径来建立问题域的模型,设计出尽可能自然地表现求解方法的软件。
### 面向对象三个基本特征 面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它将程序中的各种实体抽象为对象,每个对象都可以包含数据(属性)以及对这些数据进行操作的方法(行为)。面向...
### 面向对象的三个基本特征:封装、继承、多态 面向对象编程(Object-Oriented Programming,简称 OOP)是一种广泛使用的编程范式,它基于对象的概念,通过对象来模拟现实世界中的实体。面向对象编程的核心在于其...
面向对象的三个基本特征是封装、继承和多态,这三者共同构成了面向对象编程的核心。下面将详细介绍这些特征,并讨论它们在编程中的具体应用和重要性。 首先,封装是面向对象编程中用于隐藏对象内部状态和行为、仅...
### 面向对象的特征 面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它将程序中的数据与处理这些数据的方法组织在一起形成对象。面向对象编程具有四大核心特性:封装、继承、多态以及抽象。...
本篇文章将详细探讨面向对象的基本概念、面向对象分析以及其主要特征。 一、面向对象的基本概念 1. 对象:在面向对象编程中,对象是现实世界中的实体在程序中的抽象。它包含了数据(属性或成员变量)和操作这些...
在本篇文章中,我们将深入探讨面向对象的原理、特征以及其在实际开发中的应用。 1. **对象和类**:在面向对象编程中,对象是程序的基本单元,它包含了数据(属性)和操作数据的方法(行为)。类是对具有相同属性和...
面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它以对象作为基本单元,强调对象的封装、继承和多态。Java和Python都是面向对象的编程语言,但它们在继承和多态的实现上各有特色,此外,垃圾...
面向对象的特征主要体现在四个方面:封装、继承、多态以及抽象。这些概念是理解Java语言以及其他面向对象编程语言的基础。 ### 封装(Encapsulation) 封装是将数据和操作数据的方法捆绑在一起,隐藏对象的属性和...
面向对象的基本特征三:多态的理解(java) * 多态:多种形态 * * 变量的引用形式: * (1)本态引用:左边的变量与右边的对象是同一种类型 * (2)多态引用:左边的变量是父类类型,右边的对象是子类的对象 ...
面向对象编程(OOP)的基本特征包括抽象、封装、继承和多态。以下是根据给定的文件信息,对这些知识点的详细解释: 1. 抽象:在MATLAB面向对象编程中,抽象指的是从实际世界中提取问题的本质特征,并在程序中通过对象...
在解决这些试题的过程中,可以加深对Java语法结构、类与对象、继承与接口、数据封装、多态性等面向对象基本特征的理解。同时,通过了解Java的特殊方法(如equals、hashCode)、异常处理机制、集合框架以及字符串处理...
Java面向对象编程PDF 在这篇文章中,我们将对Java面向对象编程的基础知识进行总结和解释。面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它将程序设计看作是对象的交互,对象之间的关系和行为...
面向对象编程的核心特征包括类、封装、继承与动态链接等,这些特性决定了面向对象软件测试的方法与传统测试方法有所不同,并且增加了测试用例的设计难度。本文旨在探讨面向对象软件测试的基本原理、策略与方法,重点...
在Python中,面向对象有三大基本概念:类(Class)、对象(Object)和继承(Inheritance)。首先,类是对象的蓝图,定义了一组属性(数据成员)和方法(成员函数),这些属性和方法共同构成了对象的特征和行为。例如...