ITPub博客

首页 > 应用开发 > Java > static变量是否能继承详细介绍

static变量是否能继承详细介绍

原创 Java 作者:好程序员 时间:2020-10-15 11:31:46 0 删除 编辑

  好程序员 Java 培训 分享 static 变量 是否 能继承详细介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,下面我们一起来看一下吧。

   代码如下

   // 父类

   package com.xujingyang.test;

   public class Father {

   public static String staticString=" 父类中的静态变量 ";

   public String str=" 父类中的非静态变量 ";

   public static void staticMethod(){

   System.out.println(" 父类中的静态方法 ");

   }

   public  void nostaticMethod() {

   System.out.println(" 父类中的非静态方法 ");

   }

   }

   // 子类

   package com.xujingyang.test;

   public class Son extends Father {

   public static String staticString=" 子类中的静态变量 ";

   public String str=" 子类中的非静态变量 ";

   public static void staticMethod(){

   System.out.println(" 子类中的静态方法 ");

   }

   public  void nostaticMethod() {

   System.out.println(" 子类中的非静态方法 ");

   }

   }

   // 子类

   package com.xujingyang.test;

   public class A extends Father{

   }

   // 测试方法

   package com.xujingyang.test;

   public class Test {

   public static void main(String[] args) {

   Son son=new Son();

   System.out.println(son.str);

   System.out.println(son.staticString);

   son.staticMethod();

   son.nostaticMethod();

   System.out.println("==============================");

   Father f=new Son();

   System.out.println(f.str);

   System.out.println(f.staticString);

   f.staticMethod();

   f.nostaticMethod();

   System.out.println("==============================");

   A f2=new A();

   System.out.println(f2.str);

   System.out.println(f2.staticString);

   f2.staticMethod();

   f2.nostaticMethod();

   }

   }

   结果如下:

  

   得出如下结论: 父类中的静态成员变量和方法是可以被子类继承的 , 但是不能被自己重写 , 无法形成多态 .

   我发现, 变量时无法形成多态的 , 网上别人说 , 子类把父类的变量继承过来 , 内存中会存在两个同名的变量 , 父类的变量会出现在子类变量之前 . 如下图 :

  



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69913864/viewspace-2727047/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-03-20

  • 博文量
    342
  • 访问量
    195012