封装
提取实物的本质,共性的属性和方法。忽略某些不必要的细节和个性的差异
存在一个边界,边界之内的细节隐藏起来,只留下对外的接口(如笔记本、手机、饮水机)
为什么使用封装:(1)易用、简单(2)安全(3)易维护
封装:是将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
封装的好处:
(1)只能通过规定方法访问数据
(2)隐藏类的实现细节
(3)方便加入控制语句
(4)方便修改实现经过封装的属性,不能直接访问,要通过公共属性get/set方法访问。
多态:
不同的对象,接收到相同的消息,产生的相应不同。
什么是多态?:事物在运行过程中存在不同的状态。
多态的体现:重写和重载等。
多态的前提
必须是类与类之间有关系。要么继承,要么实现。
通常还有一个前提:存在覆盖。
多态的好处:
1.可替换性(substitutability)。多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。
2.可扩充性(extensibility)。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。
3.接口性(interface-ability)。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。如图8.3所示。图中超类Shape规定了两个实现多态的接口方法,computeArea()以及computeVolume()。子类,如Circle和Sphere为了实现多态,完善或者覆盖这两个接口方法。
4.灵活性(flexibility)。它在应用中体现了灵活多样的操作,提高了使用效率。
5.简化性(simplicity)。多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要
继承:
赋值兼容 凡是在需要用到父类的对象地方,都可以用子类的对象来代替
允许后代直接使用前辈的所有属性和行为。
为什么需要继承?
使用继承可以有效实现代码复用,避免重复代码的出现。
什么时候应该继承?
当两个类具有相同的特征(属性)和行为(方法)时,可以将相同的部分抽取出来放到一个类中作为父类,其它两个类继承这个父类。
如何实现继承:
在java语言中,用extends(扩展)关键字来表示一个类继承了另一个类。
什么是方法的重写:
如果在子类中定义的一个方法,其名称、返回类型及参数列表正好与父类中某个方法的名称、返回类型及参数列表相匹配,那么可以说,子类的方法重写了父类的方法。
override(重写)
1、方法名、参数、返回值相同。
2、子类方法不能缩小父类方法的访问权限。
3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
4、存在于父类和子类之间。
5、方法被定义为final不能被重写。
什么是方法的重载:
方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型
overload(重载)
1、参数类型、个数、顺序至少有一个不相同。
2、不能重载只有返回值不同的方法名。
3、存在于父类和子类、同类中。