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