.class其实是在java运行时就加载进去的
getClass()是运行程序时动态加载的
下面以例子说明:
- 首先建一个基类Baseclass
- package classyongfa;
- public class Baseclass {
- private String height;
- public String getHeight()
- {
- return height;
- }
- public void setHeight(String height)
- {
- this.height=height;
- }
- 下面是继承Baseclass类Extendclass
- package classyongfa;
- public class Extendclass extends Baseclass {
- private String width;
- public String getWidth()
- {
- return width;
- }
- public void setWidth(String width)
- {
- this.width=width;
- }
- public static void main(String[] arg0)
- {
- Baseclass baseclass1=new Extendclass();
- Baseclass baseclass2=new Baseclass();
- System.out.println(baseclass1.getClass().getSimpleName());//实际运行的是继承类Extendclass
- System.out.println(baseclass2.getClass().getSimpleName());//实际运行的是Baseclass
- System.out.println(Baseclass.class.getSimpleName());//加载时类名
- System.out.println(Extendclass.class.getSimpleName());//加载时类名
- }
- 结果是
- Extendclass
- Baseclass
- Baseclass
- Extendclass
本文详细解析了Java中的类加载机制与运行时实例化过程,通过实例展示了如何在不同场景下获取类的简单名称,以及类加载与实例化之间的区别。重点讨论了静态方法与实例方法在类加载时的行为差异。
272

被折叠的 条评论
为什么被折叠?



