使用关键字final
可以避免重写一个方法,同样如何防止重载?如何防止在Java中重载方法?
回答
你不能用Java来做到这一点。
重载的方法基本上只是另一种方法。
的尝试可以看看(东西)这样
void yourMethod(String arg) { /* ... */ }
void yourMethod(String arg, Object... prevent) {
throw new IllegalArgumentException();
}
但自从Java做出决议通过看“最佳匹配”或“最具体的签名”超载将无法正常工作。
的方法仍然可以用
void yourMethod(String arg, String arg2) { /* ... */ }
这将做yourMethod("hello", "world")
时被调用过载。
顺便说一句,你为什么要防止重载?也许还有另一种做你想做的事情的方式?
标记类最终,它不能被扩展。这可能会挫败其他一些目的。
如果重载方法,则创建了一个名称相同但参数类型不同的方法。在Java中,根据其参数定义(部分)方法,因此如果两种方法具有相同的名称但参数不同,则它们是苹果和桔子,即不相同。总之,你不能阻止某人在课堂上创建新的方法,这实质上就是你所要求的。
您可以防止的方法被通过使其最终覆盖,但你不能阻止一个方法被超载。从技术上讲,你可以让这个类本身是最终的,所以根本没有任何方法可以通过创建一个子类来添加,但我认为这不是一个好的设计。
方法被覆盖,不被覆盖。 – 2010-06-07 07:39:04
你有六年的时间来解决这个问题。投票删除。 – EJP 2016-05-27 04:14:52
你不能。因为它几乎毫无意义。
如果您想超载方法handle(..)
但您不允许,则您将创建doHandle(..)
。
在编译时确定使用哪种重载方法(与在运行时确定的重写方法相反)。所以重载的重点是共同的名称共同操作。禁止这是代码式的问题,而不是其他任何事情。
+1无意义。编译器永远不会选择重载方法中的一个,而不是重载方法。 – 2010-06-07 07:51:05
错误...不允许超载的方法是什么?
防止覆盖是允许的,因为它可以由另一个程序员完成,他可能是另一部分代码,他的类是从你的类继承的。
重载是在同一个类中完成的,逻辑上应该由知道该代码的程序员完成,并且正在处理代码的相同部分。所以,如果他知道这个代码(理论上)并且超载有一些固有的危险,那么他应该知道这一点,因为他知道代码。
也就是说,超载不能像其他人已经描述的那样停止。
简单!不要调用那个重载的方法。
public class Test
{
public void m(int a)
{
*your definition*
}
public void m(float a)
{
*your definition*
}
}
public static void main(Strings [] args)
{
Test t=new Test();
t.m(5);
}
- 1. 在Java中重载方法?
- 2. Java - 防止破坏方法
- 3. 如何防止在派生类中重写方法?
- 4. 防止uitableView重载
- 5. 如何防止用“#”onclick重新加载?
- 6. 如何防止页面重新加载?
- 7. 如何防止页面重新加载
- 8. 如何防止在@ModelAttribute方法
- 9. Java中方法的重载
- 10. 如何防止重复。 Java,SQL
- 11. Java方法重载
- 12. Java,重载方法
- 13. 如何防止反射访问java中的类或方法
- 14. Android:如何防止方向更改后重新加载活动?
- 15. 如何防止在Java中找到“Validation.EncodingRequired”
- 16. 我如何使方法停止并重新开始在Java中
- 17. 重载equals方法在Java中
- 18. 方法重载与泛型在Java中
- 19. 如何在Android中防止多重Dex
- 20. 在java中加载spritesheet时如何防止我的FPS掉线?
- 21. 如何防止在装载机中页面的重新创建?
- 22. 重写重载的Java方法JRuby中
- 23. 如何防止在Java数据库中使用重复插入?
- 24. 如何防止我的ArrayList在Java GUI中重置?
- 25. 如何防止在java中重新排序
- 26. 有没有一种方法可以防止Spring Boot重载bean?
- 27. 防止重复串JAVA
- 28. 就是Java防止重写静态方法?
- 29. 在C#中如何重载Finalize()方法?
- 30. 如何在C#中重载方法?
...例如重写:-) – aioobe 2010-06-07 07:31:37