Java 我们可以采用私有方法吗?最终方法是一样的
据我所知,私有方法和final方法是相同的。Java编译器在编译时确定私有方法的含义。私有方法和最终方法都不能在运行时修改,也不能重写。这些相似性使得私有方法和最终方法看起来是一样的。这是真的吗?考虑以下示例:Java 我们可以采用私有方法吗?最终方法是一样的,java,private,final,Java,Private,Final,据我所知,私有方法和final方法是相同的。Java编译器在编译时确定私有方法的含义。私有方法和最终方法都不能在运行时修改,也不能重写。这些相似性使得私有方法和最终方法看起来是一样的。这是真的吗?考虑以下示例: class Super { private void foo(){} final void bar(){} } class Sub extends Super { private void foo(){} final void bar(){}
class Super {
private void foo(){}
final void bar(){}
}
class Sub extends Super {
private void foo(){}
final void bar(){}
}
使用foo()
方法不会有问题,但在尝试编译bar()
方法时会遇到编译问题。这是因为无法重写bar()
方法,但是foo()
方法就是不可见,因此不会发生重写
您可以在这里看到更多的答案:私有方法自动为final,并对其派生类隐藏。最终类不会对其派生类隐藏。因此,您可以创建一个与私有方法同名的新类,例如
class test {
private void works {
}
}
class tester extends test {
private void works {
}
}
但不能创建与最终方法同名的新类
/*----------Doesn't Work------------*/
class test {
final void dWorks {
}
}
class tester extends test {
final void dWorks {
}
}
示例和答案如下:停止投票..请。。请断定两者是否相同。不,它们不一样。我提供的链接提供了一个具体的例子来解释。如果措辞更清楚,这可能是一个更好的问题。你的意思是,“私有方法都是最终的吗?”