面向对象的几大特征
1.抽象
把事务的共同特性抽取出来,构成这类事物的相同特性的集合,也就是类。
抽象包括两个方法:
- 对于类中属性的定义,称为数据抽象;
- 对于类中方法的定义,称为过程抽象。
2.封装
一个类将自己的数据和一些方法的实现细节不对外提供,只提供一些开放的接口供外界访问。
比如javaBean的属性私有,属性的赋值或者逻辑只能由javabean本身决定,只提供了get和set方法;orm对象映射框架,不需要关心连接如何建立,sql如何执行,只需要引入mybatis,调用方法就可以了就可以了。
3.继承
使用extends关键字来实现,被继承的类称为父类,实现继承的类称为子类。继承指的是:子类继承父类,并做出自己的改变或者拓展。子类共性的方法或者属性直接使用父类的,不需要自己再定义,只需要自己再扩展自己特有的。
- 组合:在一个新类中嵌入已有类的对象,从而重复利用已有类的功能。
- 继承:父类是它的所有子类所有共性的抽象,子类是父类的特例。
4.多态
一个重写,一个是重载。多态最典型的使用场景就是父类引用指向子类对象。
多态指的是程序中定义的引用变量所指向的具体类型和通过这个引用变量发出的方法调用在编程时是不确定的,在程序运行期间才确定。也就是这个引用变量发出的方法调用到底是哪个类中实现的方法,是在程序运行期间才能决定。
重写和重载
重写:运行期间的。发生在子类和父类之间的。方法名,返回值类型,参数列表都必须相同,抛出的异常范围小于等于父类,访问修饰符大于等于父类。
重载:编译期间的。发生在一个类中的,方法名必须相同,参数列表不同(参数类型,参数个数,参数顺序),返回值类型和访问修饰符可以不同。
- 重载就是同一类中多个同名方法根据不同的传参来执行不同的逻辑处理。