java函数如何调用
调用 Java 函数的基本方法
Java 函数的调用依赖于函数的定义(静态或非静态)以及调用上下文(同一类、不同类或继承关系)。以下是常见场景的具体实现方式。
调用同一类中的函数
在同一个类中调用函数,直接使用函数名和参数即可。静态函数可直接调用,非静态函数需要通过实例调用。

public class Example {
// 非静态函数
void nonStaticMethod() {
System.out.println("非静态方法");
}
// 静态函数
static void staticMethod() {
System.out.println("静态方法");
}
public static void main(String[] args) {
// 调用静态函数
staticMethod();
// 调用非静态函数需创建实例
Example obj = new Example();
obj.nonStaticMethod();
}
}
调用其他类中的函数
若函数属于其他类,需通过类名(静态函数)或对象实例(非静态函数)调用。
class AnotherClass {
static void staticMethod() {
System.out.println("另一个类的静态方法");
}
void nonStaticMethod() {
System.out.println("另一个类的非静态方法");
}
}
public class Main {
public static void main(String[] args) {
// 调用静态函数
AnotherClass.staticMethod();
// 调用非静态函数
AnotherClass obj = new AnotherClass();
obj.nonStaticMethod();
}
}
通过继承调用父类函数
子类可通过 super 关键字调用父类的函数,或直接覆盖(Override)父类方法。

class Parent {
void display() {
System.out.println("父类方法");
}
}
class Child extends Parent {
@Override
void display() {
super.display(); // 调用父类方法
System.out.println("子类方法");
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
child.display();
}
}
通过接口调用默认方法
Java 8 及以上版本支持接口中的默认方法(default),可直接通过实现类实例调用。
interface MyInterface {
default void defaultMethod() {
System.out.println("接口默认方法");
}
}
class MyClass implements MyInterface {
// 无需重写默认方法
}
public class Main {
public static void main(String[] args) {
MyClass obj = new MyClass();
obj.defaultMethod();
}
}
通过反射调用函数
反射机制允许在运行时动态调用函数,适用于不确定函数名的场景。
import java.lang.reflect.Method;
public class ReflectionExample {
public void greet(String name) {
System.out.println("Hello, " + name);
}
public static void main(String[] args) throws Exception {
// 获取类和方法
Class<?> clazz = ReflectionExample.class;
Method method = clazz.getMethod("greet", String.class);
// 调用方法
Object instance = clazz.newInstance();
method.invoke(instance, "World");
}
}
关键注意事项
- 静态函数:通过类名直接调用,无需实例化。
- 非静态函数:必须通过对象实例调用。
- 访问权限:确保调用方有足够的访问权限(如
public、protected或包私有)。 - 参数匹配:调用时需传递与函数声明完全匹配的参数类型和数量。






