- 浏览: 397335 次
- 性别:
- 来自: 北京
博客专栏
-
Spring Roo杂谈
浏览量:0
文章分类
- 全部博客 (418)
- SPRING (19)
- WEB前端 (15)
- IBATIS (4)
- HIBERNATE (0)
- JSF (0)
- WEBSERVICES (0)
- DESIGN PATTERN (9)
- UML (3)
- J2SE (30)
- BASIC CONCEPT (2)
- EJB (1)
- interview (71)
- cache (6)
- 设计 (6)
- NONSENSE (1)
- Problems (28)
- time (3)
- Future Problems (2)
- INFO (24)
- Performance (12)
- java (14)
- core (1)
- lib (1)
- famous (9)
- VersionManage (26)
- Big Data (10)
- netty (0)
- exception (1)
- design (1)
- 规则引擎 (3)
- Method (22)
- nosql (14)
- nosql-redis (2)
- DATABASE (32)
- Cluster (6)
- Linux (13)
- 高并发 (2)
- sport (0)
- Arithmetic (8)
- TEST (1)
- Python (7)
- 公共平台 (3)
- spring roo (7)
- server (1)
- Cases (1)
- security (1)
- opensource (8)
- architect (5)
- O2O (0)
- P2P (0)
最新评论
-
liutingna86:
程序没有提取新的链接,只是分析url.txt中链接页面的内容是 ...
Java编程技巧:小爬虫程序(转) -
u013680195:
CSS基础教程17篇 此教程共17篇,由浅到深、循序渐进的讲述 ...
每个Web开发者必备的9个软技能(转) -
zhb8015:
有一个解决的方法:把DTD文件从mybatis.jar中拿出来 ...
求助: exception is java.net.UnknownHostException: mybatis.org -
zhb8015:
问题可能找到了,spring-test对于(@ContextC ...
求助:NoSuchBeanDefinitionException: No bean named 'userService' is defined
真正的理解不光在于实践出来,也要能说出来..:(
原文:http://www.cnblogs.com/cestcnsoft/archive/2011/03/24/1994096.html
多态实例:http://my-imagination.iteye.com/blog/851752
什么事封装?
1. 保护数据成员,不让类以外的程序直接访问或修改,只能通过提供的公共的接口访问==>数据封装。
2. 方法的细节对用户是隐藏的,只要接口不变,内容的修改不会影响到外部的调用者==>方法封装。
3. 当对象含有完整的属性和与之对应的方法时称为封装。
4. 从对象外面不能直接访问对象的属性,只能通过和该属性对应的方法访问。
5. 对象的方法可以接收对象外面的消息。
比如:
Class A
{
private int prop;
puplic int getProp()
{
return prop;
}
public void setProp(int prop)
{
this.prop = prop;
}
}
属性prop是private的,外界不能直接访问,但是外界可以通过调用getProp()和setProp()的方法,
给对象发消息,从而完成某种功能。
什么事多态?
多态性的概念经常被说成事“一个接口,多种方法”。这意味着可以为一组相关的动作作设计一个通用
的接口。多态允许同一个接口被必于同一个类的多个动作使用,这样就降低了程序的复杂性。再拿狗作比喻,
一条狗的嗅觉是多态的。如果狗闻到猫的气味,它会在吠叫并且追着它跑。如果狗闻到食物的气味,它将分
泌唾液并向盛着食物的碗跑去。两种状况下同一种嗅觉器官在工作,差别在于问到了什么气味,也就是有两
种不同类型的数据作用于狗的鼻子!在java中,同一个类中的2个或2个以上的方法可以有同一个名字,只要
参数声明不同即可。在这种情况下,该方法就被称为重载(Overload),这个过程称为方法重载(Method
overloading)。方法重载是java实现多态的一种方式。
有两种方式可以实现多态:*
1. 继承(子类继承父类(包括abstract class,interface ect))
2. 重载(同一个类中)
如果是面向对象程序设计的话,面向对象程序设计中的另外一个重要概念是多态性。在运行时,通过指向
基类的指针,来调用实现派生类中的方法。可以把一组对象放到一个数组中,然后调用它们的方法,在这种场
合下,多态性作用就体现出来了,这些对象不必是相同类型的对象。当然它们都继承自某个类,你可以把这些
派生类都放到一个数组中。如果这些对象都有同名方法,就可以调用每个对象的同名方法。同一操作作用于不
同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。多态性通过派生类重载基类中的虚函数
型方法来实现。
在面向对象系统中,多态性是一个非常重要的概念,它允许客户对一个对象进行操作,由于对象来完成一
系列的动作,具体实现哪个动作、如何实现由系统负责解释。
“多态性”一词最早用于生物学,指同一种族的生物体具有相同的特性。在C#中,多态性的定义是:同一
操作作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的执行结果。C#支持两种类型的多
态性:
>编译时的多态性
编译时多态是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数,返回的类型
等信息决定实现何种操作。
>运行时的多态性
运行时多态性就是指直到系统运行时,根据实际情况决定何种操作。C#中,运行时的多态性通过虚成员
实现。
编译时的多态性为我们提供了运行速度快的特点,而运行时的多态性则带来了高度灵活和抽象的特点。
面向对象的编程方法具有四个基本特征:
1. 抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象
并不是打算了解全部问题,而是选择其中的一部分,忽略暂时不用部分细节。比如,我们要设计一个学生成绩
管理系统,考察学生这个对象时,我们只关心他的班级、学号、成绩等,而不用去关心他的身高、体重这些信息。
抽象包括两个方面,一是过程抽象,二是数抽象。过程抽象是指任何一个明确定义功能的操作都可被使用者看做
单个实体看待,尽管这个操作实际上可能由一系列更低级的操作来完成,数据抽象定义了数据类型和施加于该类
型对象的操作,并限定了对象的值只能通过使用这些操作修改和观察。
2. 继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,他提供了一种明确表述共性的方法。对象的一个
新类可以从现有的类中派生,这个过程为类的继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),
而原始类称为新类的基类(父类)。派生类可以从他的基类那里继承方法和实例变量,并且类可以修改或增加新
的方法使之更适合特殊的需要。这也体现了大自然的一般与特殊的关系。继承性很好的解决了软件的可重用性问题。
比如说,所有的Windows应用程序都有一个窗口,他们可以看作都是从一个窗口派生出来的。但是有的应用程序
用于文字处理,有的应用程序用于绘图,这是由于派生出了不同的子类,各个子类添加了不同的特性。
3. 封装:
封装是面向对象的特征之一,是对象和类概念的主要特性,封装是吧过程和数据包围起来,对数据的访问只能
通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治,封装的对象,这
些对象通过一个受保护的接口访问其他对象。一旦定义了一个对象的特性,则有必要决定这些特性的可观性,即哪
些特性对外部世界时可见的,哪些特性用于表示内部状态。在这个阶段定义对象的接口。通常,应禁止直接访问一
个对象的实际表示,而应通过操作接口访问对象,这称为信息隐藏。事实上,信息隐藏是用户封装性的认识,封装
则为信息隐藏提供支持。封装保证了模块具有较好的独立性,使得程序维护修改较为容易。对应用程序的修改仅限
于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。
4. 多态性:
多态性是指允许不同类的对象对同一消息作出响应。比如同样的加法,把两个时间加在一起和把两个整数加在
一起肯定完全不同。又比如,同样的选择编辑-粘贴操作,在文字处理程序和绘图处理程序中有不同的效果。多态性
包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享,代码共享的优势,很好的解决了应用程
序同名问题。
使用了对象就叫基于对象,基于对象的基础增加了继承从而变成了面向对象。
基于对象的最大特点就是封装,至于private,protected,public,并不是基于对象语言的必须要求。同时应该注意
的是,封装对于应用本身并没有提供太大的帮助;换句话说封装
发表评论
-
Bootstrap notes
2015-08-31 17:12 654可视化布局 http://www.bootcss.com ... -
(转) BIO,NIO,AIO区别
2015-08-13 14:20 835【转自】http://qindongliang.ite ... -
移位操作
2015-07-23 22:58 707java中的移位操作只对int和long有效,byte、sh ... -
java8 lamda表达式8案例
2015-05-29 14:05 5711. 实现Runnable线程案例 使用() -> ... -
lamda表达式(转)
2015-05-29 14:02 1297简介 Lambda表达式是Java SE 8中一个重要的新 ... -
javaassist学习笔记
2015-05-22 15:27 508javaassist学习笔记 http://wsmaj ... -
按位运算(转)
2015-05-06 11:35 891转自百度百科: 程序中的所有数在计算机 ... -
按位操作
2015-05-06 11:04 757技巧: A、0110+0110,相当于0110*2,也就 ... -
java Object类占用内存大小计算
2015-04-01 10:47 11552012-12-04 11:13 2249人阅读 评论(0 ... -
技术书籍排行榜
2015-03-27 16:20 683前述: 记得一次在网上看到一篇文章,阿里要求 ... -
spring roo 入门
2014-08-02 23:11 1038准备工作: 从Spring官网下载STS ... -
JVM参数经验(转)
2014-06-16 17:23 786原文地址:http://www.cjsd ... -
JVM系列四:生产环境参数实例及分析【生产环境实例增加中】 (转)
2014-06-16 17:17 482java application项目(非web项目) 改进 ... -
JVM参数
2014-06-16 17:14 796JVM参数的含义 实例见实例分析 参数名称 含义 ... -
【深入Java虚拟机】之八:Java垃圾收集机制(转)
2014-06-15 22:33 673转载请注明出处:http://blog.csdn.net/n ... -
移位运算,移位操作应用
2014-06-15 22:28 1725一、位运算应用口诀 清零取位要用与,某位置一可用 ... -
聊聊并发(四)——深入分析ConcurrentHashMap(转)
2014-05-30 10:24 707http://www.infoq.com/cn/articl ... -
java字节码操作
2014-05-26 17:21 914你知道如何操作JAVA字节码文件吗,这里将介绍与操作Java ... -
父类引用指向子类对象(转)
2014-05-16 17:32 974父类引用指向子类对象 ... -
java程序员必知的8大排序(转)
2014-05-15 16:12 9058种排序之间的关系: 1, 直接插入排序 (1) ...
相关推荐
封装、继承和多态是面向对象编程的三大核心特性,它们是软件设计中不可或缺的概念,尤其是在Java、C#等面向对象的语言中。 封装是面向对象编程的基础,它指的是将数据和操作这些数据的方法绑定在一起,形成一个独立...
在这个实例中,我们将探讨四个关键概念:封装、继承、多态以及文件流操作,这些都是Java中的核心特性,也是理解OOP(面向对象编程)的基础。 首先,**封装**是面向对象编程的核心理念之一,它涉及将数据和方法捆绑...
### Python面向对象编程基础:封装、继承与多态 #### 封装 **定义与作用:** 封装是面向对象编程的一个基本概念,指的是将数据及其相关的操作捆绑在一起,对外提供一个干净的接口,隐藏实现细节。封装使得代码更加...
在本实验报告中,我们将深入探讨Java编程中的两个核心概念:类的继承和多态的应用。实验主要目标是加深对抽象类和抽象方法的理解,并掌握如何在实际编码中实现类的继承以及多态性。 首先,让我们理解抽象类和抽象...
在C++中,多态性是面向对象编程的三大特性之一,另外两个是封装和继承。多态性允许不同的对象对同一消息做出不同的响应,实现灵活和通用的代码设计。C++支持两种类型的多态:静态多态(编译时多态)和动态多态(运行...
在JavaScript中,面向对象编程(OOP)的三大特性为封装、继承和多态。以下是对这些特性的详细介绍,以及在JavaScript中如何实现和原理的探讨。 封装是面向对象编程的基石之一。它通过类(class)的概念将数据(属性...
在C++编程语言的学习过程中,类(Class)、继承(Inheritance)和多态(Polymorphism)是核心概念,它们构成了面向对象编程的基础。在这个“C++课后小练习”中,初学者可以通过一系列小程序来深入理解和应用这些知识...
Java中的继承和多态是面向对象编程的重要概念,它们极大地提高了代码的复用性和灵活性。在本章中,我们将深入探讨这两个主题。 首先,我们来理解一下继承的概念。继承允许一个类(子类)从另一个类(父类)中继承...
学习过程中随手写的,核心编程,类和对象,封装继承多态
而“继承”,作为面向对象编程(OOP)的四大核心特性之一(其余三个为封装、多态和抽象),赋予了我们创建代码的新维度。通过继承,一个类可以继承另一个类的属性和方法,从而使得代码复用变得简单而高效。无论是...
首先,让我们来看看继承。在PHP中,继承允许一个类(子类)继承另一个类(父类)的属性和方法,减少了代码重复,提高了代码复用性。通过关键字`extends`,子类可以继承父类的所有非私有属性和方法。例如: ```php ...
这份“C++复习资料大全”涵盖了指针、函数、多态等核心概念,对于深入理解C++语法和编程技巧至关重要。 首先,让我们详细探讨指针。在C++中,指针是一个变量,它存储的是另一个变量的地址。通过指针,我们可以直接...
多态是面向对象编程的三大特性之一,其他两个是封装和继承。多态允许不同类型的对象对同一消息作出不同的响应,实现方法重写和接口统一。在C++中,有两种主要的多态形式:静态多态(编译时多态)和动态多态(运行时...
多态(Polymorphism)是面向对象编程的三大特性(封装、继承、多态)之一,它允许我们使用一个通用的接口来处理不同类型的对象,从而实现灵活和高效的代码设计。这张趣图通过扫地车与拖拉机的类比,生动地展示了多态...
在Java编程语言中,多态性(Polymorphism)是面向对象编程的三大特性之一,另外两个是封装和继承。多态性允许我们使用一个接口来代表多种不同的类,这使得代码更加灵活,易于扩展。在这个实例中,我们将探讨如何通过...
接着,作者会深入讲解C++的面向对象特性,如封装、继承和多态,这些都是C++的核心概念。封装允许我们将数据和操作数据的方法组合在一起,形成一个独立的对象;继承则实现了代码的重用,一个类可以从另一个类派生并...
这份"50道Java常见编程题(有精力的同学看看).rar"压缩包文件提供了学习者一个宝贵的资源,涵盖了Java的基础编程练习,旨在帮助他们巩固基础知识并提升编程技能。 在Java的世界里,面向对象编程(Object-Oriented ...
在JavaScript中,多态、继承和封装是面向对象编程的核心概念。封装是将数据和方法组织在一起,使得数据不被外部直接访问,从而保护数据的安全性。继承则是通过创建一个新类(子类)来继承已有类(父类)的属性和方法...
"JAVA编程人员必看"这一标题暗示了本资料将涵盖Java编程的基础到高级概念,是学习者提升技能的重要资源。 【面向对象编程】 Java的核心特性之一是面向对象编程(OOP)。在Java中,一切皆为对象,类是创建对象的...
你可以从中学习如何定义类、创建对象,理解继承、封装和多态等概念。此外,还有可能接触到模块化编程,了解如何组织和管理代码,以便于重用和维护。 在实际操作中,你将学习到如何使用版本控制系统,如Git,来跟踪...