zoukankan      html  css  js  c++  java
  • Java面向对象的三个特征与含义

    三大特征是:封装、继承和多态。

      封装是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象。在java中能使用private、protected、public三种修饰符或不用(即默认defalut)对外部对象访问该对象的属性和行为进行限制。

      protected在同包内的类及包外的子类能访问

     

      继承是子对象可以继承父对象的属性和行为,亦即父对象拥有的属性和行为,其子对象也就拥有了这些属性和行为。这非常类似大自然中的物种遗传。

     

      多态不是很好解释:更倾向于使用java中的固定用法,即overriding(重写)和overload(重载)。多态则是体现在overriding(重写)上,而overload(重载)则不属于面向对象中多态的范畴,因为overload(重载)概念在非面向对象中也存在。overriding(重写)是面向对象中的多态,因为overriding(重写)是与继承紧密联系,是面向对象所特有的。多态是指父对象中的同一个行为能在其多个子对象中有不同的表现。也就是说子对象可以使用重写父对象中的行为,使其拥有不同于父对象和其它子对象的表现,这就是overriding(重写)。

     

      多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)

      实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。

      多态的作用:消除类型之间的耦合关系。

      现实中,关于多态的例子不胜枚举。比方说按下 F1 键这个动作,如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows 帮助和支持。同一个事件发生在不同的对象上会产生不同的结果。

     

    多态存在的三个必要条件:
      一、要有继承;
      二、要有重写;
      三、父类引用指向子类对象。

  • 相关阅读:
    【JVM】模板解释器--如何根据字节码生成汇编码?
    你会swap吗,按值传递还是按引用?
    你了解实时计算吗?
    Hadoop的Server及其线程模型分析
    机会
    storm如何分配任务和负载均衡?
    storm基础框架分析
    storm如何保证at least once语义?
    学习笔记:The Log(我所读过的最好的一篇分布式技术文章)
    学习笔记:Twitter核心数据类库团队的Hadoop优化经验
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/7890729.html
Copyright © 2011-2022 走看看