Java中的方法名可以具有相同的名称,这是因为面向对象编程中有两个重要的概念:重载和重写。
重载:
重载是指在同一个类中定义两个或以上的方法,它们拥有相同的方法名但参数类型、参数个数或参数顺序不同。这样的方法称为重载方法。当调用重载方法时,Java会根据调用时传入的参数类型和数量自动匹配到对应的方法。
<code>public class OverloadExample { public void print(int num) { System.out.println("打印整数:" + num); } public void print(String str) { System.out.println("打印字符串:" + str); } public void print(double num1, double num2) { System.out.println("打印小数:" + num1 + " 和 " + num2); } } OverloadExample oe = new OverloadExample(); oe.print(123); oe.print("Hello, world!"); oe.print(3.14, 2.72); </code>
重写:
重写是指在子类中定义一个与父类方法名、返回类型和参数类型完全相同的方法。重写的方法必须与父类方法具有相同的返回类型和参数类型。
<code>public class Parent { public void sayHello() { System.out.println("父类方法:Hello!"); } } public class Child extends Parent { public void sayHello() { System.out.println("子类方法:Hello World!"); } } Parent p = new Parent(); Child c = new Child(); p.sayHello(); c.sayHello(); </code>
以上代码执行结果为:
<code>父类方法:Hello! 子类方法:Hello World! </code>
以上就是Java中重载和重写的方法名相同的介绍。