1、继承
①概念
一个类从另一个类获得属性和方法,将一类事物公共的属性和行为提取出来,创建出一个模板,称之为父类,子类继承父类公共的属性和方法,并且扩展添加一些自己特有的属性和方法。
优点:提高了代码的复用性,让类与类之间产生了关系,是多态的前提
缺点:父类的属性、方法的改变会对子类产生影响,增加了代码的耦合性。
②super和this
super是一个关键字,代表父类的存储空间标识(也可以说是父类的引用)。
this代表对象的引用(谁调用就代表谁)。
当子父类出现同名的时候可以用super分开,需要调用父类的构造方法的时候可以用super(..)。
③方法的重写
子类中的方法的返回值,方法名,参数列表和父类中方法的一样,且子类方法的返回值的权限小于等于父类的方法。(当父类中的方法是private的时候则该方法不能被重写,因为是父类私有的方法不被子类所继承,子类没有他的访问权限)。
区别重载(构造方法的重载):在同一个类中,方法名相同,参数列表不同,与返回值没有关系。
class 子类 extends 父类 {}
2、封装
①概念
封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。尽可能的隐藏细节的实现,通过接口与外部进行交流。
②优点
良好的封装可以减少耦合性(需要对属性修改新的条件的时候,可以直接修改这个封装类的内部就行,不用每一个调用他的地方都进行修改)。
让代码更容易维护和理解,信息隐藏增加了程序的安全性(属性被private修饰,不能直接方法问,需要通过定义的get方法,可以不定义get,或者增加条件约束)。
③总结
封装的是变化。
3、多态
①概念
对于同一类引用,在运行阶段,会根据实际引用不同子类对象,调用不同的方法。
②技术
实现动态的技术叫做动态绑定,是指在运行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
③条件
★要有继承(或者接口实现)
★要有方法的重写
★父类引用指向子类对象(子类向上转型,子类中新加的方法不能再调用)
④优点
★可扩充性,新加新的子类并不影响已存在的类的多态性,继承性。
★接口性,为子类提供一个接口,让子类去重写去完善它。
★灵活性,提高了使用效率。
★可替换性。