接口 中的所有方法都是方法 抽象
使用接口实现多继承

类型的装换###


数据成员就变成了static 和 final


food 和 snow 都是可以吃的


可以同时实现多个接口

接口与接口之间也可以有继承关系

类型转换###

向上转换###

显式转换##

显示转换



超类的引用不能访问子类的方法

方法的查找##


实例方法查找
从创建对象的时候向上查找


这里和C++不太一样

banding#

早绑定:
晚绑定:动态绑定
动态绑定

二次分发技术###

构造方法与多态性:


先超类,后组件,最后自己

构造方法中调用多态方法


输入输出流##

异常处理简介
异常处理得概念

错误&异常

预定义常见得异常

异常得处理##

检查型的异常

抛出异常得例子

生成异常对象3种方式


要传一个字符串进去描述发生了什么

输入输出流###



面向字符的抽象流类


面向字节的是面向非文本数据的数据
尽量存成2进制的数据面向字节

标准输入输出流对象

标准输入输出重定向


重定向

写文本文件###


Filerwirter 对象的实例
捕获和处理IO异常


用BufferedWirter换行
套一个BUfferedWriter 可以提供缓冲提高效率

用newLine可以提供正确的换行

读文本文件##

FileReader类 从文本文件中读取字符
套一个缓冲流

读一行如果不空就接着读


返回某个字符的int类型的整数

例子:文件的复制##



单入口

写二进制文件##


讲三个数据写入数据文件


三次嵌套
按类型缓冲写数据


readbyte 是补符号位
readunsigedbyte 是零扩展

从二进制文件中读取数据



又是三次嵌套
读完了会抛出一个异常

读单个字节,写单个字节

低位8位


一个字节一个字节的复制
EOFEception

两个异常

Flie类##

管理文件的操作

改进

用File判断文件是否存在

处理压缩文件##


这里几乎嵌套了四次流
FileINputStream 面向字节的流
GZIPInputStream 解压
InputStreamReader 桥梁
BufferedReader 提供了readLine

第二个不关文本文件的事直接按字节复制就好

ZIP格式更复杂一些##



重要的一行

解压缩ZIP

解压缩回复路径

有没有斜杠的统一


是目录要创建,不存在要创建

![](http://images2017.cnblogs.com/blog/1054453/201709/1054453-
20170908160523241-1499383048.png)

对象序列化##

对象的读写


将对象村办
s.flush 清空缓冲区


readObject 方法读取一个对象


空接口。。

阻止写入文件


ObjectOutputStream 嵌套FileOutputstream
对象输出流

Externalizable 接口

实现两个方法
writeExternal() readExternal()
写和读的定制

随机文件的读写##

RandowmAccessFile