javainstance
發布時間: 2023-08-25 08:26:37
Ⅰ java中instanceof和getClass的區別分析
java instanceof和getClass()的區別以及繼承與組合的區別
1.instanceof:比較的是繼承關系或者實現關系的類類型,子類對象或者實現類對象放在前面,例如:
class A{}
class B extends A{}
B b = new B();
b instanceof A
2.getClass():比較任何類的類型(兩個毫不相乾的類型,當然這也沒啥意義),也可以通過isAssignableFrom(Class<?> cls)方法比較,以下是API原意:
判定此 Class 對象所表示的類或介面與指定的 Class 參數所表示的類或介面是否相同,或是否是其超類或超介面。如果是則返回true;否則返回 false。如果該 Class 表示一個基本類型,且指定的 Class 參數正是該 Class 對象,則該方法返回 true;否則返回 false。
它是通過父類名稱點class,或者父類對象點getClass(),點isAssignableFrom(子類名稱點class,或者子類對象點getClass()),進行比較。
熱點內容