`
wsj356428476
  • 浏览: 109748 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java面向对象三大特征轻松理解

    博客分类:
  • java
阅读更多
封装:
        首先,属性可用来描述同一类事物的特征, 行为可描述一类事物可做的操作,封装就是要把属于同一类事物的共性(包括属性与行为)归到一个类中,以方便使用.比如人这个东东,可用下面的方式封装:
人{
    年龄(属性一)
    身高(属性二)
    性别(属性三)

    做事(行为之一)
    走路(行为之二)
    说话(行为之三)
}


继承:
     由于封装,使得有共同特征的一类事物的所有描述信息都被归于一类之中,但我们知道,这并不是万能的,有些事物有共性,但还存在区别,比如教师,简单封装起来如下:
教师{
    年龄(属性一)
    身高(属性二)
    性别(属性三)

    做事(行为之一)
    走路(行为之二)
    说话(行为之三)

    教书(行为之四)
}
上面对"教师"的封装,与对"人"的封装基本上差不多,只是多了一个特征行为:教书,
教师有与人一样的共性, 但我们不能说"人教书",也就是不能把教书封装到"人"之中去,教书是教师的特征行为之一.  为了省事地封装教师(代码的复用,这只是继承存在的原因之一), 可以让教师去继承人,如:
教师 extends 人{
    教书(行为之三)
}
这样,我们就不用重新定义那些已经被"人"这一个类所封装的那些属性与行为了,而只需要使用继承的方式,在人的基础上拓展教师专有的行为,即"教书"即可把教师描述出来;这样的结果, 即是教师也同时拥有"人"之中所封装的一切属性与行为, 还拥有自己的特征行为"教书".


多态:
     多态的概念发展出来,是以封装和继承为基础的(其实我觉得抽象也应该算是面向对象的大特征之一,要封装,抽象是必须的)

简单的理解一下多态,比如:
     人这个类,封装了很多人类共有的特性,
     教师是人的子类,继承了人的属性与行为,当然教师有自己的特征行为,比如教书授课;
     学生是人的子类,继承了人的属性与行为,当然学生有自己的特征行为,比如学习做作业;
   
     现在,当我们需要去描述教师与学生各自的行为的时候, 我们可以分开来说"教师在授课",  "学生做作业",  但如果我们要站在抽象的角度,  也就是从教师与学生的父类"人"的角度, 来同时描述他们各自的行为时,我们怎么描述?"人在授课"?"人在做作业"?这是不是怪怪的很不合适?不合适的问题就在于, 对于行为主体,我们使用了抽象层次的东东"人",而对于行为本身, 我们却使用了具体的东东"授课"与"教书". 怎么解决呢? 那就需要解决抽象与具体的矛盾问题.
既然是站在抽象在角度来描述,那我们把行为抽象一下,不就能同时描述了吗?比如"人在做事"(教师授课与学生做作业都可以说成人在做事),这样就解决了抽象层次与具体层次之间的矛盾.

到了这一步, 我们可以把两个描述: "教师在做事", "学生在做事" 两者统一为"人在做事",
然后, 我们可以在"教师"的"做事"行为中去调用教师自己的特征行为"授课",
在"学生"的"做事"行为中去调用学生自己的特征行为"做作业",
所以,当调用"人"去"做事"的时候,如果这个人是教师,那他所做的事实际上就是"教书",
如果这个人是学生,那他所做的事实际上就是"做作业".
也就是说在这里"人"是多态的, 在不同的形态时,特征行为是不一样的, 这里的"人", 同时有两种形态,一种是教师形态,一种是学生形态,所对应的特征行为分别是"授课"与"做作业".

完成上述的描述过程, 其实就是多态机制的体现.

多态, 就是站在抽象的层面上去实施一个统一的行为,到个体(具体)的层面上时, 这个统一的行为会因为个体(具体)的形态特征而实施自己的特征行为.

多态比起封装与继承来说要复杂很多, 上面的描述很简单, 不用去死抠多态两个字,
其实只要明白:
能站在抽象的角度去描述一件事,
而针对这件抽象的事, 对于每个个体(具体)又能找到其自身的行为去执行, 这就是多态.
分享到:
评论

相关推荐

    Java面向对象编程:从C++到Java—理解面向对象

    ### Java面向对象编程:从C++到Java的理解与过渡 #### 一、Java与C/C++的区别 在从C++转向Java的过程中,理解和掌握面向对象编程(OOP)是非常重要的。本篇文章将着重介绍Java与C/C++之间的主要差异,并探讨Java如何...

    JAVA面向对象编程_孙卫琴2.pdf

    ### JAVA面向对象编程的核心知识点解析 #### 一、面向对象编程概述 面向对象编程(Object-Oriented Programming,简称OOP)是一种计算机编程架构。它将计算机程序设计成由简单的称为“对象”的基本单位组成。面向...

    数据结构与Java面向对象程序设计课程之间的有效衔接.pdf

    在信息技术教育领域,数据结构与Java面向对象程序设计课程的衔接问题一直是一个重点研究方向。数据结构作为计算机专业的核心基础课程之一,对于培养学生的逻辑思维能力和解决问题的能力至关重要。而Java面向对象程序...

    ANBOW java面向对象课件上机练习和代码

    这个名为"ANBOW java面向对象课件上机练习和代码"的资源显然旨在帮助学习者深入理解和掌握Java的面向对象特性。面向对象编程(Object-Oriented Programming, OOP)是现代软件工程中的基石,它基于类和对象的概念,...

    面向对象的特征

    ### 面向对象的特征 面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它将程序中的数据与处理这些数据的方法组织在一起形成对象。面向对象编程具有四大核心特性:封装、继承、多态以及抽象。...

    面向对象程序设计实训报告.docx

    总的来说,这个实训项目不仅锻炼了学生们的编程技能,也让他们对面向对象编程有了更深入的理解,特别是如何将现实世界的问题抽象为类和对象,以及如何通过方法实现特定功能。在实际开发中,这样的思维方式和技巧是...

    Java面向对象程序设计_教程课后答案

    ### Java面向对象程序设计知识点详解 #### 第1章 Java概述 **知识点1:Java的特点** - **简单性与面向对象性:** Java语言的设计强调简洁性,并且完全支持面向对象编程,这使得开发者可以更容易地理解和使用该...

    java面向对象课件ppt,我老师的内部资料

    这份“java面向对象课件ppt”显然深入浅出地讲解了这一主题,旨在帮助学习者理解并掌握Java中的面向对象特性。 首先,面向对象的主要概念包括封装、继承和多态。封装是将数据和操作这些数据的方法绑定在一起,形成...

    Accp6.0 使用Java实现面向对象编程 第一章

    ### 面向对象编程基础:使用Java实现面向对象编程 #### 1.1 面向对象设计:以电子宠物系统为例 ##### 1.1.1 为什么使用面向对象 面向对象编程(OOP)是一种编程范式,它通过模拟现实世界的对象及其属性和行为来构建...

    《Java面向对象程序设计》

    《Java面向对象程序设计》是一本深入探讨Java编程语言中面向对象特性的教材。面向对象编程(Object-Oriented Programming, OOP)是现代软件开发中的核心编程范式,Java作为其代表之一,广泛应用于企业级应用、...

    Java面向对象程序设计ppt课件(完整版).ppt

    总之,Java面向对象程序设计涵盖了从语言基础到高级特性的广泛内容,包括类、对象、方法、多线程、网络通信以及Applet的开发和部署。学习Java需要理解其面向对象的编程模型,掌握开发工具的使用,以及熟悉Java平台的...

    第1章-Java语言概述-Java面向对象程序设计教程-微课视频版-程杰-清华大学出版社.pptx

    Java是一种广泛使用的高级编程语言,以其面向对象的特性著称,由Sun Microsystems公司的James Gosling在1991年发起的Green项目中孕育而生。起初,Java被设计用于家用电器的控制和通信,起初命名为Oak。随着互联网的...

    Java面向对象编程练习题.doc

    ### Java面向对象编程知识点解析 #### 一、Java版本与分类 Java自Sun公司推出以来,根据应用范围的不同,被分为三个主要版本: 1. **SE(Standard Edition)**: 标准版,适用于桌面应用程序。 2. **EE(Enterprise ...

    面向对象java排序包

    【面向对象Java排序包】是基于Java编程语言设计的一个专门用于处理排序问题的软件组件。这个包充分体现了面向对象的设计原则...对于学习和理解面向对象编程以及Java的高级特性,这个排序包是一个非常有价值的参考资源。

    Java与面向对象思想.doc

    【Java与面向对象思想】 Java是一种广泛使用的高级编程语言,其设计原则着重于面向对象的编程思想。面向对象编程(Object-Oriented Programming,OOP)是Java的核心,它强调将现实世界的问题抽象为类和对象,通过...

    面向过程、面向对象、面向组件、面向服务软件架构的分析与比较

    面向对象编程,如C++、Java、C#等语言,是一种更为高级的编程范式,它将数据和操作数据的方法封装在一起,形成对象。面向对象强调的是数据的封装、继承和多态,通过类和对象的概念,提供了更好的代码组织方式和重用...

    利用Java语言增强学生的面向对象编程思想.pdf

    Java语言是一种简单、易学且纯面向对象的编程语言,它具有优良的语法结构、功能强大、易于调试和丰富的类库等特点,使得学生可以轻松地掌握面向对象编程的思想。同时,本文还提出了教学方法,旨在帮助学生更好地学习...

    JAVA面向对象的设计原则

    ### JAVA面向对象的设计原则 在Java编程语言中,面向对象设计是软件开发过程中至关重要的一环。面向对象设计原则为开发者提供了指导思想,帮助他们构建出更易于维护、扩展且健壮的应用程序。本文将深入探讨面向对象...

    Java语言与面向对象程序设计第02讲

    Java语言与面向对象程序设计不仅涵盖了基本的语法和概念,还包括了对象的属性和相互关系、封装、继承和多态这三大面向对象技术要素。对于初学者来说,掌握这些基础知识并结合实际练习,是成为一名合格的Java程序员的...

Global site tag (gtag.js) - Google Analytics