Java類名.class和getClass()區別


區別

類名.class叫做“類字面量”,因class是關鍵字, 所以類名.class編譯時確定。

getclass()運行時根據實際實例確定,getClass()是動態而且是final的。

String.class 是能對類名的引用取得在內存中該類型class對象的引用,

new String().getClass() 是通過實例對象取得在內存中該實際類型class對象的引用。

 

例子

1.抽象類
package com.abc;
public abstract class Animal {
}

 

2.實例類
package com.abc;
public class Dog extends Animal {
    public static void main(String[] args) {
       Animal animal = new Dog();
       System.out.println(animal.getClass().getName());
       System.out.println(Animal.class.getName());
    }
}

 

3.結果
com.abc.Dog

com.abc.Animal


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM