静态方法隐藏、重写、继承
静态方法可以通过二种形式来调用,一种是类名加方法名,另一种是类引用加方法名.
上述程序中通过第二种方式来调用静态方法,其实质是检查引用的类型来调用静态方法(即类名加方法名的方式).
静态成员(方法和属性)属于类而不是属于对象,静态方法,静态属性,动态属性早在编译期就已经确定(弱弱地说,相关地址数据存储在虚拟机的方法区类数据中).
-------------------------------------
1. 静态方法可以被继承.
程序一:
Java代码 /** * Copyright (c) 2011 Trusted Software and Mobile Computing(TSMC) * All rights reserved. * Author: Jarg Yee <yeshaoting@gmail.com> * http://jarg.iteye.com/ */ import static java.lang.System.out; /** * 静态方法被隐藏不能被重写 测试程序 - 父类 */ class SuperClass { /** static method in the super class. */ public static void display() { out.println("in the super class."); } } /* * 静态方法被隐藏不能被重写 测试程序 - 子类 */ public class SubClass extends SuperClass { /** for debugging. */ public static void main(String[] args) { SubClass sub = new SubClass(); // 上转型对象 sub.display(); // 调用子类自己的静态方法 SuperClass sup = new SubClass(); // 子类对象 sup.display(); // 用被隐藏的父类静态方法 } /** static method in the super class. */ public static void display() { out.println("in the sub class."); } } ---------- 运行Java ----------in the sub class.in the super class.输出完成 (耗时 0 秒) - 正常终止