接口
关键字 interface 主要用来定义规范
- 接口中的抽象方法 经常省略 public abstract
- 和类一样 也是引用数据类型
- 接口中的成员变量是常量 pulic static final 都可以省略
- 接口是用来被实现的而且一个类可以实现多个接口.
接口和类的关系
- 接口不能有构造方法 所以不能实例化对象
- 接口里面吧能有普通方法 只能有抽象方法
- 接口是不能被继承的(但是能被接口继承)
但是可以被类随实现
注意 Java中类和类是单继承的 但是接口直接可以多继承
接口和抽象类的区别
- 抽象类可以有构造方法 普通成员变量 静态成员变量 静态普通法
抽象方法
多态
多态的 在同一个对象,在不同时刻表现出的不同形态
多态的三个必要条件
- 要有继承或实现关系
- 要有方法重写
- 要有父类引用子类对象 引用就是变量 子类对象就是值(向上转型) 向上转型: 子类往前走一步 变成父类
注意
- 子类重写了父亲的方法以后 执行的是自己的方法
- 子类有 父亲有的方法 子类可以通过继承直接使用
- 子类有 父类没有 调用的时候就报错
向下转先下型 父类向下走一不 变成子类
向下转
- 强制转换 可能出现类型异常转换
- 向下转之前 必须先上转型
- 为了避免类型异常 也可以使用instanceof关键字 进行判断 instanceof 对象 instanceof 类型 判断对象是否是个类型
多态的使用场景
方法的形参是父类 实参可以是子类
形参 与 实参
形参 方法声明时 方法的小括号里面的参数
实参 方法调用时 方法小括号里面的参数
好出 提高代码扩展性
异常 代码在运行时出现的错误
编译时异常:代码还没运行,就出现了问题
- SQLException:操作数据库时查询表可能发生的异常
2. IOException:操作文件时发生的异常
3. FileNotFoundException:操作不存在文件时发生的异常
4. ClassNotFoundException:加载类而类不存在时发生的异常
5. EOFException:操作文件到文件末尾发生异常
6. llegalArguementException:参数异常
行时异常:代码在正常的运行过程中出现的问题
- NullPointerException:空指针异常,当应用程序试图在需要对象的地方出现null时抛出该异常
2. ArithmeticException: 数学运算异常,当出现异常的运算条件时抛出此异常
3. ArrayIndexOutOfBoundsException: 数组下标越界异常,用非法索引访问数组时抛出的异常
4. ClassCastException :类型转换异常,当试图将对象强制转换为不是实例的子类时抛出该异常
5. NumberFormatException:数字格式不正确异常,当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时抛出该异常
异常解决
try 捕获异常
catch 处理异常
finally 不管有没有异常都要执行 用来释放资源
throws/throw g关键子
throw 生成一个异常
throws 抛出一个异常 谁调用我 我就抛给谁 异常还存在 存在与最终抛给了谁