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