专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java编程基础覆盖,私有方法无法覆盖

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

更新时间:2020-07-30 16:06:21 来源:动力节点 浏览1755次

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

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>