Java中static变量是否能继承
这篇文章给大家介绍Java中static变量是否能继承,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联公司是专业的顺平网站建设公司,顺平接单;提供成都网站设计、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行顺平网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
代码如下
//父类 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(); } }
结果如下:
得出如下结论:父类中的静态成员变量和方法是可以被子类继承的,但是不能被自己重写,无法形成多态.
我发现,变量时无法形成多态的,网上别人说,子类把父类的变量继承过来,内存中会存在两个同名的变量,父类的变量会出现在子类变量之前.如下图:
关于Java中static变量是否能继承就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
分享标题:Java中static变量是否能继承
文章来源:http://scyanting.com/article/jhhdcp.html