Java 继承与方法重写注意事项

1.子类没有权限调用父类中被修饰为private的方法,只能调用父类中public和protected方法。

2.重写父类方法时,修改方法的修饰权限只能从小的范围到大的范围改变,即private->protected/public protected->public

3.子类重写父类方法时可以修改方法的返回值类型,但是需要遵循一个原则:重写的返回值类型必须是父类中同一方法返回值类型的子类

4.在实例化子类对象时,父类无参构造方法会自动调用,但是有参构造方法并不会自动调用,需要使用super关键字显式调用

5.如果使用finalize()方法对对象进行清理,需要确保子类的finalize()方法最后一个动作是调用父类的finalize()方法

6.Object类中getClass() notify() notify()All() wait()等方法不可以重写,因为这些方法定义为final类型

7.在自定义类中使用equals()方法进行比较时,将默认使用"=="运算符比较两个对象的引用地址,而不是比较对象内容,若要比较对象内容需要在自定义类中重写equals()方法

8.向下转型将抽象类转换为较具体的类,因此通常会发生错误,可以使用显式类型转换将父类对象强制转换为某个子类对象;且向下转型时,如果父类对象不是子类对象的实例,则会发生ClassCastException异常,所以向下转型之前应该使用instanceof操作符判断父类对象是否为子类实例

Animal animal=new Cat(); //先向上转型
if(animal instanceof Cat){
	Cat cat=(Cat) animal; //然后向下转型
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值