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方法重载。