时间:2021-05-20
今天研究了一下被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(); }}结果如下:
得出如下结论:父类中的静态成员变量和方法是可以被子类继承的,但是不能被自己重写,无法形成多态.
我发现,变量时无法形成多态的,网上别人说,子类把父类的变量继承过来,内存中会存在两个同名的变量,父类的变量会出现在子类变量之前.如下图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Java中的Staticclass详解Java中的类可以是static吗?答案是可以。在Java中我们可以有静态实例变量、静态方法、静态块。类也可以是静态的。j
java关键字static详解一、static代表着什么在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中
一、static代表着什么在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“
java中的类可以是static吗?答案是可以。在java中我们可以有静态实例变量、静态方法、静态块。类也可以是静态的。java允许我们在一个类里面定义静态类。
在java中,static是一个修饰符,用于修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能;被static关键字修饰的方法或者变量