instanceof运算符用来判断前面的对象是否是后面的类或其子类,实现类的实例
注意引用变量的编译时类型和运行时类型
构造器?
构造器负责对java对象执行初始化操作,不管是在非静态初始化块中所做的操作,还是在定义实例变量时指定的初始值,最终都会被提取到构造器中被执行
绝大多数时候,程序使用new关键字为一个java对象申请内存空间,都需要构造器为这个对象执行初始化,
但在某些时候,程序创建java对象无需调用构造器,
(1)使用反序列化方式恢复对象-----类实现Serializable接口
(2)使用clone方法赋值java对象-------类实现Cloneable接口,为该类提供clone(){super.clone();}方法来复制自己,属于浅克隆
因此单例类应该加上readResolve()方法,保证通过反序列化时得到的是已有的java实例,这样可保证得到的是单例类
private Object readResolve(){
return instance;
}
方法重写?
private修饰符修饰的方法,只有当前类能够访问,子类无法访问父类中定义的private方法,因此子类也无需重写该方法