java是一门面向对象的编程语言,有三大特性封装,继承,多态。
封装
封装概述
利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。 数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节, 只保留一些对外接口使之与外部发生联系。用户无需知道对象内部的细节, 但可以通过对象对外提供的接口来访问该对象。
优点
1. 减少耦合:可以独立地开发、测试、优化、使用、理解和修改。
2. 减轻维护的负担:可以更容易被程序员理解,并且在调试的时候可以不影响其他模块。
3. 有效地调节性能:可以通过剖析确定哪些模块影响了系统的性能。
4. 提高软件的可重用性。
5. 降低了构建大型系统的风险:即使整个系统不可用,但是这些独立的模块却有可能是可用的。
继承
继承概述
继承实现了 IS-A 关系,例如 Cat 和 Animal 就是一种 IS-A 关系,因此 Cat 可以继承自 Animal,从而获得 Animal 非 private 的属性和方法。
继承应该遵循里氏替换原则,子类对象必须能够替换掉所有父类对象。
优点
1. 提高了代码的复用性。
2. 提高了代码的维护性。
3. 在类与之间产生了关系,是多态的前提。
Java中继承的特点:
1. 只支持单继承,不支持多继承。
2. 子类只能只能继承父类所有非私有成员(成员方法和成员变量)。
3. 子类不能继承父类的构造方法,但是可以通过super关键在去访问父类构造方法。
多态
多态概论
某一个事物,在不同时刻表现出来的不同状态。 具体来讲,就是调用同一方法,会执行不同的功能。
实际生活:水在不同时刻的状态。
多态分类
多态分为编译时多态和运行时多态:
1. 编译时多态主要指方法的重载
2. 运行时多态指程序中定义的对象引用所指向的具体类型在运行期间才确定
运行时多态有三个条件
1. 继承:存在继承或者实现关系。
2. 覆盖(重写):子类或实现类必须重写父类方法。
3. 向上转型:父类引用指向子类对象。