首页 课程 师资 教程 报名

Java编程基础覆盖,私有方法无法覆盖

  • 2020-07-30 16:06:21
  • 2268次 动力节点

在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培训机构的小编针对“Java编程基础覆盖,私有方法无法覆盖”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交