getclass()与getsuperclass() (2)
来源:互联网 发布:招聘java程序员 编辑:程序博客网 时间:2024/06/06 00:43
今日遇到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
今日遇到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
0 0
- getclass()与getsuperclass() (2)
- getclass与getsuperclass (1)
- 关于this.getClass().getSuperClass().getName()与super.getClass()
- Super.GetClass()和GetSuperClass()区别
- java反射、getClass()、getSuperclass()、getGenericSuperclass()
- java中getClass()和getSuperClass()的讲解
- super.getClass()与this.getClass()
- super.getClass()与this.getClass()
- Class的 getSuperclass与getGenericSuperclass区别
- Class的 getSuperclass与getGenericSuperclass区别
- super.getClass()与this.getClass()的问题
- super.getClass()与this.getClass() 的区别
- scala类型系统:2) classOf与getClass方法的差异
- getGenericSuperclass,getSuperclass
- getGenericSuperclass,getSuperclass
- getClass
- getClass()
- getClass
- popupwindows
- J2EE开发需求下载地址
- 判断程序是c还是c++编译的
- C-结构体对齐
- mysql日志配置
- getclass()与getsuperclass() (2)
- 端口:区分不同服务
- 树莓派3初次使用
- Android稳定性问题分析时获取手机状态的ADB命令
- Mybatis执行ReuseExecutor(五)
- Android canvas rotate():平移旋转坐标系至任意原点任意角度-------附:android反三角函数小结
- bzoj 3747: [POI2015]Kinoman(线段树)
- MP3Stego的打开方式与使用方法
- 把字符串转换成整数——剑指offer