首頁  >  文章  >  Java  >  Java中關於this.getClass()與super.getClass()的案例

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

黄舟
黄舟原創
2017-08-22 10:06:431871瀏覽

這篇文章主要介紹了詳解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