方法重载只能在同一个类中进行吗?或者它可以发生在子类中吗?关于Java中的方法重载
-1
A
回答
1
子类中的重载没有限制。例如,我可以有:
public class A {
public String test(String input) {
//do something
}
}
public class B extends A {
public String test(String input, String input2) {
//do something
}
}
B testInstance = new B();
testInstance.test("one", "two");
testInstance.test("one");
对于这样的问题,您可以随时尝试自己并找出答案。
1
总而言之 - 是的。你可以在子类中重载方法。例如: -
public class Parent {
public void print(String s) {
System.out.println("That was a string: " + s);
}
}
public class Child {
public void print(int i) {
System.out.println("That was an int: " + i);
}
}
public class Main {
public static void main(String[] args) {
Child c = new Child();
c.print("hello"); // prints "That was a string: hello"
c.print(7); // prints "That was an int: 7"
}
}
0
当重载的方法,它基本上与创建与其他同名没有直接关联一个全新的方法,它是重要的签名。 所以如果你在具有不同签名的子类中创建一个方法,它将被编译器视为该类的不同和新方法,所以它不会将它与超类的方法关联起来。
0
在子类中可以重载。如果使用不同参数的超类创建一个名称相同的方法,那么它将被视为单独的方法。 Sub类也会有超类的方法,所以根据参数类型在编译时决定要调用的方法。在编译时声明哪个方法被称为静态多态。这里的例子 -
Class A{
void m1(int x){
System.out.println("m1 in A");
}
}
Class B extends A
{
void m1(String str)
{
System.out.println("m1 in B");
}
}
Public Class Test
{
public static void main(String[] aa)
{
B b = new B();
b.m1(10);
b.m1("Hello World!!")
}
}
希望这会有所帮助。
相关问题
- 1. 关于方法在Java重载
- 2. 在Java中重载方法?
- 3. Java方法重载
- 4. Java,重载方法
- 5. 重写重载的Java方法JRuby中
- 6. 的Java:重载方法
- 7. Java中重载和方法返回类型的关系?
- 8. Java中的重载方法(EMACS)
- 9. 重载关联方法
- 10. Java方法重载错误
- 11. 关于java方法调用
- 12. 可以基于java中的访问重载方法吗?
- 13. 重写HashMap等于Java中的方法
- 14. 重载equals方法在Java中
- 15. Java方法重载+双重调度
- 16. 使用Java中的可变长度方法重载方法
- 17. 关于方法超载的建议
- 18. 的Java通过“空”,以重载方法
- 19. Java:关于克隆方法的问题
- 20. 关于Java方法的问题
- 21. 用于重载方法的WSDL2Java?
- 22. 重载基于参数值的方法?
- 23. Java等于关于数组中的null的方法
- 24. ExcelDNA中的重载方法
- 25. C#中的重载方法
- 26. PHP中的方法重载
- 27. 关于Java中的方法和正确的做法
- 28. Java:继承和重载方法问题
- 29. Java方法命名约定和重载
- 30. Java方法调用重载逻辑
当你尝试时发生了什么? –