面向对象
Java是一种面向对象的语言。有三大特性:封装、继承和多态 封装: 将数据和基于数据的操作封装在一起。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户无需知道对象内部的细节,但可以通过对象对外提供的接口来访问该对象。 继承: 子类能够获得父类非private的属性和方法 继承应该遵守里氏代换原则。子类对象必须能够替换掉所有父类对象。 Cat 可以当做 Animal 来使用,也就是说可以使用 Animal 引用 Cat 对象。父类引用指向子类对象称为 向上转型 。向上转型是安全的。但是向上转型会丢失子类特有的方法。 如果需要重新获得因为向上转型而丢失的子类方法,那么就需要向下转型。
INFO
详解向下转型的意义:https://blog.csdn.net/xyh269/article/details/52231944
多态:一般是考察的重点 多态分为编译时多态和运行时多态:
- 编译时多态主要指方法的重载
- 运行时多态指程序中定义的对象引用所指向的具体类型在运行期间才确定
运行时多态的条件:
- 继承
- 覆盖(重写)
- 向上转型