现在的位置: 首页 > 编程语言 > 正文

Java中static变量能继承吗

2020年02月14日 编程语言 ⁄ 共 1390字 ⁄ 字号 评论关闭

今天研究了一下被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(); }}

结果如下:

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: Java中static变量能继承吗

以上就上有关Java中static变量能继承吗的全部内容,学步园全面介绍编程技术、操作系统、数据库、web前端技术等内容。

抱歉!评论已关闭.