在Java中静态方法是否可以重载或覆盖呢?
下文笔者通过实验的方式讲述java中静态方法是否可重载和覆盖的简介说明,如下所示
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函数已被调用
例2
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被调用
static方法不能被实例方法覆盖 实例方法不能被static方法重载
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


