Java面向对象深入:权限测试与方法重写详解
需积分: 5 105 浏览量
更新于2024-06-19
收藏 1.87MB PDF 举报
"Java面向对象的进阶教程,涵盖了四种权限修饰符(private、default、protected、public)的详细测试和方法重写(override/overwrite)的概念及应用。本教程通过实例解析了不同权限修饰符在类内部、同一包内、不同包的子类和非子类中的访问限制,并提供了方法重写的相关规则和面试题。"
一、四种权限修饰
在Java中,有四种权限修饰符用于控制类的成员(属性和方法)的访问权限:
1. private:私有,只能在声明它的类内部访问。
2. default(无修饰符):默认权限,仅在同一包内的类之间可访问。
3. protected:受保护的,允许在同一包内以及不同包的子类中访问。
4. public:公共,可以在任何地方访问。
二、测试四种权限修饰
1. 同一个类:所有权限修饰的成员都可以被访问。
2. 同一个包:默认、protected和public的成员可被访问,但private成员不可。
3. 同一个包子类:private成员不可访问,但default、protected和public的成员可访问。
4. 不同包子类:private成员不可访问,default成员仅在子类和父类同包时可访问,protected成员可访问,public成员始终可访问。
5. 跨包非子类:private成员不可访问,default成员不可访问,protected成员仅在子类时可访问,public成员始终可访问。
三、方法的重写(overwrite/override)
1. 引入:当子类继承父类并定义与父类相同签名的方法时,就发生了方法重写。
2. 举例:
- 举例1:子类方法的返回类型、参数列表和异常抛出与父类完全一致。
- 举例2:子类方法可以降低访问权限,但不能提高。
- 举例3:子类方法可以减少或不抛出异常,但不能增加。
3. 方法重写应遵循的规则:
- 子类方法签名必须与父类方法完全匹配(包括返回类型、方法名和参数列表)。
- 子类方法的访问权限不能更低。
- 子类方法不能抛出更广泛的检查异常。
- 如果父类方法被final或static修饰,则无法重写。
4. 面试题:通常涉及如何判断是否为重写、重写的注意事项等。
四、方法的重写--练习题
1. 练习1:设计一个例子,演示如何正确重写父类方法。
2. 练习2:设计一个具有特定条件(如异常处理、返回值变化)的方法重写场景。
实际开发中,public和private是最常用的权限修饰符。不指定权限修饰符(默认权限)通常用于包内协作,而protected在需要子类继承时使用。属性通常设为private并通过getter和setter方法访问,方法通常是public,常量则声明为public。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-07-23 上传
2024-11-22 上传
2019-03-16 上传
2023-11-11 上传
2023-09-10 上传
2011-11-21 上传