黑马程序员技术交流社区

标题: 对于静态方法的与类绑定,静态方法被复写的问题 [打印本页]

作者: 381890216    时间: 2015-9-21 17:27
标题: 对于静态方法的与类绑定,静态方法被复写的问题
本帖最后由 381890216 于 2015-9-22 18:05 编辑

一个类中的静态方法与对该类绑定,类加载该静态方法即加载以初始化类,
试着写了下面的程序:以子类的静态方法复写父类的静态方法,然后输出。。。

  1. package PackageDemo1;

  2. public class FatheTest {
  3. public static void father(){
  4. System.out.println("a");
  5. }
  6. }
  7. class SonTest extends FatherTest{
  8. public static void father(){
  9. System.out.println("b");
  10. }
  11. }
  12. public static void main(String[] args){
  13. FatherTest a = new SonTest();
  14. a.father();
  15. FatherTest b = new FatherTest();
  16. b.father();
  17. SonTest.father();
  18. FatherTest.father();
  19. Class c = a.getClass();
  20. Class d = b.getClass();
  21. System.out.println(c);
  22. System.out.println(d);
  23. }
复制代码


编程结果为a
a
b
a

class PackageDemo1.SonTest
class PackageDemo1.FatherTest
如果”静态方法与类绑定,与对象无关“的说法是正确的,绿字跟红字的结果是否相互矛盾了(因为我理解为c属于SonTest类,d属于FatherTest类)?我应该怎样理解才行?










欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2