首頁 > Java > java教程 > Java中關於this.getClass()與super.getClass()的案例

Java中關於this.getClass()與super.getClass()的案例

黄舟
發布: 2017-08-22 10:06:43
原創
1936 人瀏覽過

這篇文章主要介紹了詳解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中文網其他相關文章!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板