1 接口: 定义规范的,主要是由抽象方法构成的。
(一个类实现了接口,就要按照规矩重写接口里的所有抽象方法)
关键字:
定义接口:interface
实现接口:implements
接口中定义抽象方法的时候可以省略: public abstract
2 接口的特点:
1 接口里面的方法都是抽象方法 public abstract
2 接口里面的变量都是静态常量 public static final
3 接口里面没有构造方法,所以也不存在实例化对象的概念。
4 接口和接口可以多继承
5 类和接口之间是实现关系,可以多实现。
多态:
同一个数据类型的对象,使用相同的方法,表现出不同的结果。(面向对象的三大特征之一)
必备的条件:
1 继承或者实现
2 方法重写
3 父类的引用指向子类的对象
使用场景:
我们在定义方法的时候,方法的参数用父类类型,调用方法的时候传入子类类型,这样可以提供代码的扩展性。
注意事项:
满足多态的情况下,
1 父类的引用不能调用子类特有的方法。
2 如果父类有,子类没有,可以调用(继承)
向上转型: 把小的概念往大了说 父类的引用指向子类的对象 狗是动物
向下转型: 把大的概念往小了说 有可能发生错误 把这个动物变成狗
向下转型可能发生错误: 需要用 instanceof 来判断是否是同一种类型
异常: 代码发生的错误(报错)
1 错误: 没办法挽回,纠正。 栈溢出(递归的时候)
2 异常: 发生错误以后可以捕获,并且处理。
|- 运行时异常: 代码跑起来以后报的错
1.NullPointerException(空指针异常)
2.ArithmeticException(运算非法异常)
3.IndexOutOfBoundsException(数组越界异常)
4.ClassCastException(类转换异常)
5.ArrayStoreException(数据存储异常,操作数组时类型不一致)
6.BufferOverflowException(字节溢出异常—IO流操作)
|- 编译时异常: 代码还没跑就报错了
1.ClassNotFoundException(类找不到异常)
2.FileNotFoundException(编译文件夹中找不到,就是发布到tomcat中的,不是工程中)
3.SQLException :提供有关数据库访问错误或其他错误的信息的异常。( 比如SQL语句写错,访问的表不存在,连接数据库失败等等)
4.IOexception:IO流异常。一般在读写数据的时候会出现这种问题。
5.EOFException:当输入过程中意外到达文件或流的末尾时,抛出此异常。
异常解决:
1 throws 把错误给了别人,谁调用谁解决,如果一层一层往上推,最终给了jvm 不推荐用
2 try...catch...finally 自己的错误自己解决
制造异常:
throw new RuntimeException();