在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方法重载
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。