博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java拾遗
阅读量:7146 次
发布时间:2019-06-29

本文共 992 字,大约阅读时间需要 3 分钟。

hot3.png

Override覆盖方法规则
1)子类方法的名称、参数签名和返回类型必须与父类方法的名称、参数签名和返回值一致
2)子类方法不能缩小父类方法的访问级别。
3)子类方法不能抛出比父类方法更多的异常,子类方法抛出的异常必须和父类方法抛出的异常相同,或者子类方法抛出的异常类是父类方法抛出的异常类的子类。
4)被覆盖的方法不能为private,否则在其子类只是定义一个新的方法,并不能对其进行覆盖。
方法覆盖和方法重载的相同之处:要求方法同名。不同:
1)方法覆盖要求参数签名必须一致,而方法重载要求参数签名必须不一致
2)方法覆盖要求返回类型必须一致,而方法重载对此不作限制
3)方法覆盖对方法的访问级别和抛出的异常有特殊的要求,而方法重载在这方面没有任何限制。
构造函数:不能被static、final和abstract修饰。构造方法不能被子类继承,所以用final和abstract修饰没有意义。构造方法用于初始化一个新建的对象,所以用static修饰没有意义。不过可以有和构造函数同名的方法(不推荐)。
内部类种类
变量——[成员变量——[实例变量|静态变量]|局部变量]
内部类——[成员内部类——[实例内部类|静态内部类]|局部内部类|匿名类]
顶层类只能处于public和默认访问级别,而内部成员类可以处于public、protected、默认和private,局部内部类可见范围是当前方法,不能用访问控制修饰符及static修饰符来修饰。以上来自《java逍遥游》
所有的内部类都可以有static final变量。
[转]抽象方法是否可同时为static,是否同时为native,是否同时为synchronized?
1)static方法只能被子类里面static的方法所覆盖,不能表现出多态,因为多态性是通过引用来实现的,所以abstract和static不可以同时使用。
2)native的方法时通过引入C/C++或其他本地语言来实现的,而在static块或方法里,无法引入不同的实现,所以不能同时使用abstract和native。
3)synchronized和abstract也不能混合使用,因为synchronized同步的是同一对象,而不是不同实现的不同对象。

转载于:https://my.oschina.net/braveCS/blog/548785

你可能感兴趣的文章
.NET Core如何为项目提供高性能解决方案?
查看>>
逃离方法牢笼
查看>>
Stack Overflow技术报告给开发者哪些启示
查看>>
如何做自动化测试?
查看>>
Java EE 8停步不前:Java社区能否扭转乾坤?
查看>>
Facebook Litho:高性能安卓UI的构建框架
查看>>
InfoQ在ETE大会上对Android工程师Jake Wharton的采访
查看>>
Spring Boot 2.0将会增强Actuator端点的特性
查看>>
移动互联网下半场,iOS开发者如何“高薪”成长?
查看>>
访谈:Kotlin在Pinterest的逆势生长
查看>>
Oracle开源Fn,加入Serverless之争
查看>>
阿里百川技术分享:OneSDK与手机淘宝技术能力开放
查看>>
GCM 3.0采用类似方式向Android、iOS和Chrome发送消息
查看>>
Scala的设计目标——Martin Odersky访谈(二)
查看>>
上学还是坐牢?百年老校“监控”学生惹争议
查看>>
埃隆·马斯克:比特币拥有着“极为出色”的结构,而纸质货币终将消失
查看>>
Graphql 初尝试2 --第一个例子
查看>>
Vue学习笔记之一 - 入门
查看>>
新JEP将简化Java类型变异
查看>>
ASP.NET 2.2 Preview 1首次支持Java SignalR客户端
查看>>