Java中的静态方法可以重载。

让我们看一个例子-

示例

public class Demo{    public static void test(){       System.out.println("Demo类test函数已被调用");    }    public static void test(int val){       System.out.println("带有参数的Demo类test函数已被调用");    }    public static void main(String args[]){       System.out.println("在主类中,调用了Demo类的方法");       Demo.test();       Demo.test(57);    } }

输出结果

在主类中,调用了Demo类的方法 Demo类test函数已被调用 带有参数的Demo类test函数已被调用

名为Demo的类包含一个名为“ test”的函数,该函数可打印特定消息。它还定义了另一个名为“ test”的函数,该函数以整数值作为参数。在main函数中,调用test函数时不带参数和带整数参数。相关消息将显示在控制台上。

Java中的静态方法不能被覆盖。具有相同签名的静态方法可以在子类中定义,但不会是运行时多态。因此,无法覆盖。这是一个例子-

示例

class base_class{    public static void show(){       System.out.println("来自基类的静态或类方法");    }    public void print_it(){       System.out.println("来自基类的非静态方法或实例方法");    } } class derived_class extends base_class{    public static void show(){       System.out.println("派生类的静态或类方法");    }    public void print_it(){       System.out.println("派生类的非静态方法或实例方法");    } } public class Demo{    public static void main(String args[]){       base_class my_instance = new derived_class();       System.out.println("创建基类实例。");       my_instance.show();       System.out.println("函数show被调用");       my_instance.print_it();       System.out.println("函数print_it被调用");    } }

输出结果

创建基类实例。 来自基类的静态或类方法 函数show被调用 派生类的非静态方法或实例方法 函数print_it被调用

基类有一个名为“ show”的静态函数,可打印一条消息。同样,另一个名为“ print_it”的函数也会打印一条消息。类是从继承这两个函数的基类派生的。名为Demo的类包含主函数,该函数创建派生类型为class的基类的实例。 相关消息将显示在控制台上。

总结

static方法不能被实例方法覆盖,实例方法不能被static方法重载。