【知识点详解】 1. 访问权限与方法重写: 在Java中,当一个子类要重写父类的方法时,子类的方法访问权限不能低于父类的访问权限。这意味着,如果父类的方法是protected或public,那么子类重写这个方法时,必须保持相同的访问权限或更开放(public)。在题目中的选项B,将访问权限改为private是不合法的,因为这是降低了访问权限。而选项C虽然改变了方法的参数类型,这属于方法的重载(Overloading),而不是重写。选项D的返回值类型从int变为short,这违反了重写规则,因为返回类型必须完全相同或父类返回类型的子类。因此,正确答案是A和C。 2. 抽象方法与静态方法: 抽象方法(abstract method)在Java中是一种没有实现的方法,用于强迫子类提供具体实现。而静态方法(static method)属于类而不是类的实例,它们在类加载时就会被绑定,不会随着对象的创建而创建。由于抽象方法是与对象实例相关的,而静态方法与对象无关,所以抽象方法不能被声明为静态。题目的答案是A,即True。 3. 父类引用指向子类对象: 当一个父类引用指向子类对象时,调用方法会根据实际的对象类型来决定执行哪个方法。在题目中,`Base baseObj = (Base)anObj; baseObj.test();` 这段代码实际上会调用子类Child的test()方法,因为baseObj引用的是Child对象。所以输出是D,即"Child.test()"。 4. 静态方法与实例方法: 静态方法不能被实例方法覆盖,因为它们不属于特定的对象实例。在题目中,Child类试图重写Base类的静态test()方法,这是不允许的。所以,这段代码在编译时会产生错误,选项C是正确的。 5. 访问控制与私有方法: 私有方法(private method)在Java中只能在定义它的类内部访问,不能被外部类或子类访问。因此,即使在子类中尝试调用父类的私有方法,也是不允许的。在题目中,Base类的test()方法是私有的,因此在main()方法中直接调用`new Base().test();`会导致编译错误。正确答案是C,即"Compilation error. Cannot override a static method by an instance method"。 以上内容详细解释了Java编程语言中关于方法重写、访问权限、抽象方法、静态方法以及私有方法的一些核心概念,这些都是Java面试和笔试中常见的知识点。掌握这些概念对于理解和编写高质量的Java代码至关重要。在面试中,对这些概念的理解和应用能力通常会被用来评估候选人的编程基础和问题解决能力。
剩余63页未读,继续阅读
- 粉丝: 1
- 资源: 26
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (175128050)c&c++课程设计-图书管理系统
- 视频美学多任务学习中PyTorch的多回归实现-含代码及解释
- 基于ssh员工管理系统
- 5G SRM815模组原理框图.jpg
- T型3电平逆变器,lcl滤波器滤波器参数计算,半导体损耗计算,逆变电感参数设计损耗计算 mathcad格式输出,方便修改 同时支持plecs损耗仿真,基于plecs的闭环仿真,电压外环,电流内环
- 毒舌(解锁版).apk
- 显示HEX、S19、Bin、VBF等其他汽车制造商特定的文件格式
- 操作系统实验 Ucore lab5
- 8bit逐次逼近型SAR ADC电路设计成品 入门时期的第三款sarADC,适合新手学习等 包括电路文件和详细设计文档 smic0.18工艺,单端结构,3.3V供电 整体采样率500k,可实现基
- 操作系统实验 ucorelab4内核线程管理
- 1
- 2
前往页