12. 《重学 JAVA》-- 面向对象
面向对象
一、面向对象(Object Oriented Programming,OOP)
面向对象是 Java 最重要的特性。Java 是彻底的面向对象语言,在 Java 中“一切都是对象”,那啥是面向对象,啥又是面向过程呢?
咱们来举个栗子!
把大象放冰箱需要有几步?
面向过程:
为了把大象装进冰箱,需要 3 个步骤。
1.把冰箱门打开(打开门的冰箱)。
2.把大象装进去(打开门后,装着大象的冰箱)。
3.把冰箱门关上(打开门、装好大象后,获得关好门的冰箱)。
面向对象:
每个动作有一个执行者,它就是对象。
1.冰箱,把门打开。
2.冰箱,大象装进去(或者说,大象,你给我钻到冰箱里去)。
3.冰箱,把门关上。
二、面向对象的三大基本特征(特性)
封装和继承目的都是为了代码重用,多态目的是为了接口重用。
封装
封装是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
封装的优点:
1.良好的封装能够减少耦合。
2.类内部的结构可以自由修改。
3.可以对成员变量进行更精确的控制。
4.隐藏信息,实现细节。
继承
继承是 java 面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
继承的特性:
子类拥有父类非 private 的属性、方法。
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
子类可以用自己的方式实现父类的方法。
多态
多态是同一个行为具有多个不同表现形式或形态的能力。
多态的优点:
1.消除类型之间的耦合关系
2.可替换性
3.可扩充性
三、方法的重载和重写
方法重载:方法名相同参数列表不同,方法重载是让类以统一的方式处理不同类型数据的一种手段。方法重载允许多个同名函数存在,函数中具有不同的参数个数或者参数类型。重载(overloading)是一个类中多态性的表现。
方法重写:子类重写父类方法,方法重写也称方法覆盖(overReading),方法重写是对父类的函数进行重新定义。在 Java 中,子类可以继承父类中的方法,而不需要重新编写相同的方法。但有时候子类不想原封不动的继承父类的方法,想做一些修改,就需要采用方法的重写。
版权声明: 本文为 InfoQ 作者【杨鹏Geek】的原创文章。
原文链接:【http://xie.infoq.cn/article/4ddaf342ae78026789d9601fd】。文章转载请联系作者。
评论