Hadoop学习笔记 3

来源:互联网 发布:mac怎么卸载virtualbox 编辑:程序博客网 时间:2024/06/13 00:28

面向对象三大特征

封装

  • 思想层面
    封装是面向对象思想的基础,因为封装是对象独立性的基本体现,我们认为一个对象具有属性和方法,因此属性和方法是界定对象的核心点,所以如果对象之间可以随意访问属性和方法的话,这种独立性就不好体现了,因此封装可以让对象自身的属性和方法被访问的方式更为规范。
  • 应用层面
    我们会把类中几乎所有的属性都设为private,然后在创建对应属性的get/set方法。因此外部的类尝试访问对应属性的时候,必须通过get/set方法,而我们可以在方法中进行控制,让访问更加安全和规范。
  • 对于方法的封装
    我们会在一个类中写多个方法,但是有一些方法是为另一个方法提供帮助的,或者我们不希望外部的类直接调用某一些方法,就可以把这些方法给封装起来,很多时候,我们可以写一个类或开发一个jar程序给别人去提供一些帮助,但是这些是我写的,我可能不希望别人看到源码,同时我可能写了很多方法,复杂,我为了别人好使用,因此我专门写几个公开的方法,写好注释,让别人更方便的去使用我的类。

继承

  • 思想层面
    如果我们发现有几个类的属性和方法是较为相似的,比如(猫类,狗类),但是如果我们还需要分别的给不同的这些类定义相同的属性和方法的话,这显然不够优雅。这时就有了继承的概念,我们可以基于猫类和狗类,提取出这一些类共同的属性和方法,创建一个父类,让子类去继承。子类拥有父类中定义的属性和方法,由此可以轻松地实现代码的复用。
  • 实际编码
    使用extends关键字可以让一个类继承另一个类,继承的类叫子类,被继承的类叫父类(超类/基类),子类默认具有父类中定义的属性和方法。
  • 方法的重写(override)
    在子类中可以写跟父类同名同参数列表同返回值类型的方法,方法的内容可以不一样,这就叫方法的重写,建议为子类重写的方法加上注解@Override。
  • 方法的重载(overload)
    在一个类中可以有多个同名的方法,但是参数列表不一样。

多态

  • 思想层面
    多态是基于继承的。子类去继承父类,对于子类有好处,但是父类被继承没有好处,由此可以体会到继承是单向,不够灵活的,为了进一步的补充继承的灵活性,有了多态。多态的含义是父类类型的对象可以保存子类的实例。
  • 实际编码
    声明一个父类类型的对象变量,可以引用其子类的实例,可以在子类的实例中切换,非常灵活。父类类型的对象变量在保存子类实例之后,可以灵活地调用子类重写的方法,但无法调用子类独有的方法。
原创粉丝点击