抽象类:没有具体实例意义的类
1.抽象类无法实例化。不能new
2.抽象类中可以有抽象方法。(可有可无)
3.子类必须实现(重写)抽象方法,除非子类为抽象类
抽象方法:
1.没有方法体加abstract的方法,就是抽象方法。
2.抽象方法只能存在于抽象类中。
final:最终的
1.修饰类,类不能被继承
2.修饰方法,方法不能被重写
3.修饰属性,属性不能被重新赋值
对于复杂数据类型而言:地址不能更改,地址内的内容可以修改
static和abstract不能同时使用,static需要实现该方法而abstract没有方法体无法实现
abstract必须被子类重写而private不能被继承便不能被重写二者冲突不能同时使用
abstract必须要被子类重写而final修饰的方法不能被重写二者冲突不能同时使用
接口:接口是一个特殊的抽象类
1.接口中的属性,都是公共的静态常量(public static fianl)。可以省略,但写出来需要写全。
2.接口中的方法,在jdk1.8之后。接口中有三种方法:静态方法、默认方法、抽象方法
静态方法:通过类名调用,不能被重写
默认方法:通过对象调用,可以被重写。
抽象方法:通过对象调用,必须被实现(重写)。
3.没有构造方法。
4.接口之间可以多继承。
5.普通类只能单继承,多实现。
异常:
处理异常的三部分:tyr catch finally 必需要有try 但不能只有tyr
try:可能会出现异常
catch:捕获异常 出现异常会执行并匹配执行
finally:一定会执行,不管是否有异常出现
多重catch:
可以对异常进行异常处理
只有一个catch会被执行
必须把Exception放到最后
异常分为严重异常和非严重异常
严重异常:err 程序没办法自己解决
非严重异常:run异常 可以不进行异常处理
必须进行异常处理:checked异常
throws声明异常但不处理
调用该方法需要解决异常或继续甩锅
throw创建一个异常()里面进行异常的描述
必须要进行异常的处理
集合框架:
Collection和Map集合都继承了iterator接口
只有实现了Iterator的集合框架才能使用for-each循环进行遍历
Collection单列集合
Map集合存储一组键值对象,提供key到value的映射
Collection接口存储一组不唯一,无序的对象
List是Collection的子接口存储一组不唯一,有序对象
Set是Collection的子接口存储一组唯一,无序的对象
ArrayList在内存中是连续的所以便利元素和随机访问的效率高
LinkedList是双向链表式储存所以插入和删除元素效率高