最新公告
  • 欢迎您光临立业阁,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • java中的静态方法可以被继承么_Java教程


    结论:java中静态属性和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏。

    原因:

    1、静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成,不需要继承机制便可以调用。

    如果子类里面定义了静态方法和属性,那么这时候父类的静态方法或属性称之为"隐藏"。如果你想要调用父类的静态方法和属性,直接通过父类名.方法变量名完成,至于是否继承一说,子类是有继承静态方法和属性,但是跟实例方法和属性不太一样,存在"隐藏"的这种情况。

    2、多态之所以能够实现依赖于继承、接口和重写、重载(继承和重写最为关键)。有了继承和重写就可以实现父类的引用指向不同子类的对象。

    重写的功能是:"重写"后子类的优先级要高于父类的优先级,但是“隐藏”是没有这个优先级之分的。

    示例如下:

    package com.study.test;
    public class A { //父类
    	public static String staticStr = "A静态属性";
    	public String nonStaticStr = "A非静态属性";
    	public static void staticMethod(){
    		System.out.println("A静态方法");
    	}
    	public void nonStaticMethod(){
    		System.out.println("A非静态方法");
    	}
    }
    package com.study.test;
    public class B extends A{//子类B
    	public static String staticStr = "B改写后的静态属性";
    	public String nonStaticStr = "B改写后的非静态属性";
    	public static void staticMethod(){
    		System.out.println("B改写后的静态方法");
    	}
    }
    package com.study.test;
    public class C extends A{//子类C继承A中的所有属性和方法
    }
    package com.study.test;
    public class StaticExtendsTest {
    	public static void main(String[] args) {
    		C c = new C();
    		System.out.println(c.nonStaticStr);
    		System.out.println(c.staticStr);
    		c.staticMethod();//输出的结果都是父类中的非静态属性、静态属性和静态方法,推出静态属性和静态方法可以
    		被继承
    		System.out.println("-------------------------------");
    		A c1 = new C();
    		System.out.println(c1.nonStaticStr);
    		System.out.println(c1.staticStr);
    		c1.staticMethod();//结果同上,输出的结果都是父类中的非静态属性、静态属性和静态方法,推出静态属性和
    		静态方法可以被继承
    		System.out.println("-------------------------------");
    		B b = new B();
    		System.out.println(b.nonStaticStr);
    		System.out.println(b.staticStr);
    		b.staticMethod();
    		System.out.println("-------------------------------");
    		A b1 = new B();
    		System.out.println(b1.nonStaticStr);
    		System.out.println(b1.staticStr);
    		b1.staticMethod();//结果都是父类的静态方法,说明静态方法不可以被重写,不能实现多态
    	}
    }

    推荐教程:java快速入门

    以上就是java中的静态方法可以被继承么的详细内容,更多请关注liyege.cn其它相关文章!

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    • 1163会员总数(位)
    • 111858资源总数(个)
    • 8本周发布(个)
    • 0 今日发布(个)
    • 242稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情
    冀ICP备19022365号-1 百度地图

    侵权联系邮箱[email protected]

    立业阁(www.liyege.cn)免费提供wordpress主题模板、dedecms模板、帝国cms模板、小说网站源码、电影网站源码以及网络技术分享,建站源码,小说模板,电影模板,网赚教程,VPS推荐