面向对象的陷阱

instanceof运算符用来判断前面的对象是否是后面的类或其子类,实现类的实例

注意引用变量的编译时类型和运行时类型
构造器?

构造器负责对java对象执行初始化操作,不管是在非静态初始化块中所做的操作,还是在定义实例变量时指定的初始值,最终都会被提取到构造器中被执行

绝大多数时候,程序使用new关键字为一个java对象申请内存空间,都需要构造器为这个对象执行初始化,

但在某些时候,程序创建java对象无需调用构造器,

(1)使用反序列化方式恢复对象-----类实现Serializable接口

(2)使用clone方法赋值java对象-------类实现Cloneable接口,为该类提供clone(){super.clone();}方法来复制自己,属于浅克隆

因此单例类应该加上readResolve()方法,保证通过反序列化时得到的是已有的java实例,这样可保证得到的是单例类

private Object readResolve(){

return instance;

}

方法重写?

private修饰符修饰的方法,只有当前类能够访问,子类无法访问父类中定义的private方法,因此子类也无需重写该方法

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值