目录
多态
多态可以增加可扩展性。
父类转子类属于“高转低”,需要强转
多态注意事项:
instanceof
可以用来判断两个类是否属于父子关系。“ X instanceof Y”
如果 “X"与”Y“不是父子类,则编译报错。
如果“X"指向的实际类型(new 实际类型) 是”Y"的子类(或相同类型),则返回true。否则返回false
类型转换
抽数是一个编程思想。
static
非静态方法可以直接调用静态方法。
静态变量一般多线程会用到。
静态导入包
final
经过final修饰的类不能被继承。 final修饰的方法不能被子类重写,final修饰的变量成为常量。
抽象类
接口
接口没有“class”,用interface 定义,实现类用 “implement”关键字
锻炼“抽象的思维”,
内部类
成员内部类
成员内部类可以获得外部类的私有属性、私有方法。实现高效解体
静态内部类
因为优先执行,无法访问非静态的属性或方法
下面的“class A"也算内部类,相当于一个java文件写了两个类,但只能有一个public class
局部内部类
匿名内部类
异常
什么是异常
异常简单分类
error一般无法预料
异常的体系结构
error
Exception
Exception一般分为运行时异常以及非运行时异常。
异常处理机制
try代码块相当于监控区域,存在异常就不会继续执行tray中的代码。存在catch中指定的异常就会被捕获,然后执行catch代码块中的代码。finally代码块最后都会执行,可以不用finally。一般用于关闭IO流,资源等。
catch可以写多个,从上往下应该是捕获由小到大的异常
快捷键: Ctrl+Alt+T
捕获异常的好处是避免程序遇到异常就停止运行
自定义异常
IDea中搜索文件: 按两次“shift”键