23.抽象类:
抽象函数------只有函数的定义,没有函数体的函数被称为抽象函数:abstract void fun();
抽象类--------使用abstract定义的类被称为抽象类:1.抽象类不能够生成对象
2.如果一个类当中包含有抽象函数,那么这个类必须被声明为抽象类
3.如果一个类当中没有抽象函数,那么这个类也可以被声明为抽象类(用于不想生成对象的类)
抽象类的子类通过overwrite父类的抽象函数来获得实例化的能力
抽象类还被叫做基类,是只用于被继承的类。
抽象类可以有构造函数,为子类准备。
26.包和访问权限
软件包为java类提供了命名空间,为同名的类提供不同的文件夹
把类放到一个包当中,需要使用package“包名”,编译时需要使用-d 参数,该参数的作用是生成相应的文件夹
一个类的全名应该是“包名” + “.” + “类名”
包名的命名规范:1.一般要求所有的字母小写
2.包名一般情况下,是你的域名倒过来写
public权限(无限制权限):修饰的类和变量无论是不是在同一个包内,其他的类都可以访问,但在不同的包中要写类的全名(加包名)否则要导入所在包后使用。
private权限(类级别):修饰的变量和方法只在类的内部能够使用
default权限(包级别):在同一个包内的类才有访问权
如果子类和父类不在同一个包中,则子类不能继承父类当中的default权限成员变量和成员函数,因为权限不够
protected权限首先拥有和default一样的功能,但是该权限只能修饰成员变量和成员函数,对于子类protected权限=public
28.接口
1.使用interface定义
2.接口当中的方法都是抽象方法
3.接口当中的方法都是public权限
4.实现接口使用implement关键字
5.一个类可以实现多个接口
6.一个接口可以继承多个接口
29.静态工厂方法模式
生成对象的代码封装在工厂类,使用静态函数
30.异常
JAVA中的一切都是对象……所以,异常也是对象。
异常:中断了正常指令流的事件。异常是运行时产生的,语法是正常的,因为判断语法正确与否是在编译期进行的。
32.IO