更新时间:2020-07-30 16:06:21 来源:极悦 浏览1905次
在Java中,只有非private方法才可以被覆盖;但是还需要密切注意覆盖private方法的现象,虽然编译器不会报错,但是也不会按照我们所期望的来执行。确切地说,在导出类中,对于基类中的private方法,最好采用不同的名字。
示例
public class PrivateOverride{
private void f(){print("private f()";}
public static void main(String[] args){
PrivateOverride po=new Derived();
po.f();
}
}
class Derived extends PrivateOverride{
public void f(){print("public f()";}
}
/* output:
private f()
*/
我们所期望的输出是public f(),但是由于private方法被自动认为是final方法,而且对导出类是屏蔽的。因此,在这种情况下,Dervied类中的f()方法就是一个全新的方法,没有重载基类中的f()方法。
以上就是极悦java培训机构的小编针对“Java编程基础覆盖,私有方法无法覆盖”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习