首页 > Java > java教程 > Java中关于this.getClass()与super.getClass()的案例

Java中关于this.getClass()与super.getClass()的案例

黄舟
发布: 2017-08-22 10:06:43
原创
1877 人浏览过

这篇文章主要介绍了详解java中this.getClass()和super.getClass()的实例的相关资料,需要的朋友可以参考下

详解java中this.getClass()和super.getClass()的实例

前言:

遇到this.getClass()和super.getClass()的返回值感到疑惑,经过探索豁然开朗。 

getClass()是java中Object类的一个方法,其原型为:       


 public final Class<?> getClass()
登录后复制


返回值为 当前运行时类的Class对象。

所以写了一段代码来说明:

getClass()不受this和super影响,而是有当前的运行类决定的。

代码如下:

父类:


package com.cyou.lijiang_hw; 
 
import java.lang.reflect.ParameterizedType; 
 
public class BaseDAO { 
  public BaseDAO() { 
    System.out.println("==============BaseDAO initialization============="); 
    System.out.println("this.getClass() ---->" + this.getClass()); 
    System.out.println("super.getClass()---->" + super.getClass());  
  } 
}
登录后复制

子类:


package com.cyou.lijiang_hw; 
 
public class UserDAO extends BaseDAO<User> { 
  public UserDAO() { 
    System.out.println("\n==============UserDAO initialization============="); 
    System.out.println("this.getClass() ---->" + this.getClass()); 
    System.out.println("super.getClass()---->" + super.getClass()); 
  } 
}
登录后复制

测试类:


package com.cyou.lijiang_hw; 
 
public class Test { 
  public static void main(String[] args) { 
    UserDAO userDAO = new UserDAO(); 
  } 
}
登录后复制

输出结果为:


==============BaseDAO<T> initialization============= 
this.getClass() ---->class com.cyou.lijiang_hw.UserDAO 
super.getClass()---->class com.cyou.lijiang_hw.UserDAO 
 
==============UserDAO initialization============= 
this.getClass() ---->class com.cyou.lijiang_hw.UserDAO 
super.getClass()---->class com.cyou.lijiang_hw.UserDAO
登录后复制

以上是Java中关于this.getClass()与super.getClass()的案例的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板