欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

静态方法继承和覆盖

程序员文章站 2022-03-15 19:38:02
...

static的方法到底能不能覆盖?

1.定义StaticExt类

package com.freelunch.test;

public class StaticExt {
	
	public static  void test()
	{
		System.out.println("father");
	}
}

 
 2.定义StaticExt 的子类StaticExtSon

package com.freelunch.test;

public class StaticExtSon extends StaticExt{
	
	public  static void test()
	{
		System.out.println("son");
	}
	
	public static void main(String[] args) {
		StaticExtSon.test(); // "son"
		
		new StaticExtSon().test(); // "son"
		
		StaticExt f = new StaticExtSon();
		f.test();// "father" 
	}
}

 

输出:

son
son
father

 

3. 结论

静态方法只与定义时所在的类相关,在编译期就已经绑定到某个类。可以继承,但不能在子类中被同名方法覆盖。

由定义引用的类型决定调用的是父类还是子类的方法。

 

相关标签: F#