博客
关于我
重写的特点
阅读量:583 次
发布时间:2019-03-11

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

随着Java编程语言的不断成长,掌握其继承与抽象类的知识变得显得尤为重要。特别是理解子类与父类之间的关系,对于编写稳健且灵活的代码至关重要。接下来,我将从不同维度深入探讨Java继承与抽象类的相关规则。

1. 访问权限与继承关系

在Java中,访问权限的设置遵循封闭性原则。子类与父类之间的访问权限规则需要谨慎处理。默认情况下,子类不能访问父类的protected成员变量或方法,而цев贸类也无法访问子类的private成员。只有通过public访问或继承方式明确指示,子类才能访问父类的protected成员。

2. 方法重写的参数列表要求

方法重写必须满足参数列表一一对应的原则。具体而言,父类方法的参数列表必须与子类重写的方法完全相同,否则将无法识别为重写,编译器会报错。这意味着参数数量和类型均需一致,任何差异都将导致代码不可编译。

3. 返回类型的一致性

在Java中,方法重写在返回类型上有明确的规则。当父类的返回类型为基本类型或void时,子类重写方法的返回类型也必须为同一个基本类型或void才会被允许。这是因为Java严格执行方法的签名匹配原则,任何变化都会导致方法无法重写。

然而,如果父类的返回类型为引用类型,而子类的返回类型是该引用类型的子类,这种情况仍然被视为有效的重写。这一点需要谨慎处理,因为可能导致引用类型的兼容性问题。

4. 异常范围与编译时检查

在编译时,子类方法的异常范围必须是父类方法异常范围的子集。例如,如果父类方法可能抛出IOException,子类方法只允许抛出IOException或其直接子类。这样做是为了在编译阶段确保一致性和安全性。然而,运行时异常不受此限制,因为运行时异常的性质在编译时无法预测。

5. 返回类型为引用类型的特殊情况

当父类方法返回的是引用类型,如Object,而子类返回String时,这被视为有效的重写。这是因为String是Object的子类),因此方法重写被允许。这一规则强调了重写方法时不仅仅看表面的相等,更要考虑实际引用类型的结构。

理解和应用这些规则有助于编写稳健的重写方法,确保代码的兼容性和正确性。通过仔细分析和实践,我们能够更好地掌握Java继承与抽象类的精髓,提升代码质量。

转载地址:http://hhmtz.baihongyu.com/

你可能感兴趣的文章
andriod 开发错误记录
查看>>
C语言编译错误列表
查看>>
看明白这两种情况,才敢说自己懂跨链! | 喵懂区块链24期
查看>>
张一鸣:创业7年,我经历的5件事
查看>>
git拉取远程指定分支代码
查看>>
CentOS5 Linux编译PHP 报 mysql configure failed 错误解决办法
查看>>
《web安全入门》(四)前端开发基础Javascript
查看>>
pycharm新建文件夹时新建python package和新建directory有什么区别?
查看>>
python中列表 元组 字典 集合的区别
查看>>
python struct 官方文档
查看>>
Android DEX加固方案与原理
查看>>
Android Retrofit2.0 上传单张图片和多张图片
查看>>
iOS_Runtime3_动态添加方法
查看>>
Leetcode第557题---翻转字符串中的单词
查看>>
Problem G. The Stones Game【取石子博弈 & 思维】
查看>>
Unable to execute dex: Multiple dex files
查看>>
Java多线程
查看>>
Unity监听日记
查看>>
openssl服务器证书操作
查看>>
expect 模拟交互 ftp 上传文件到指定目录下
查看>>