在C類中的方法m中,不是this.getClass()
總是C?在類C中的方法m中,不是this.getClass()總是C?
6
A
回答
12
不,它不是。如果有子類。
class C {
Class m() {
return this.getClass();
}
}
class D extends C { }
,然後就可以有:
C c = new D();
c.m(); // returns D.class
8
都能跟得上:
public class C
{
public void m()
{
System.out.println(this.getClass());
}
}
public class Child extends C {}
然後:
new Child().m(); // Prints Child
2
號實施例:
public class Test {
public static void main(String [] args) throws Exception {
A a = new B();
a.reportThis();
}
}
class A {
public void reportThis() {
System.err.println(this.getClass().getName());
}
}
class B extends A { }
1
關鍵字this指的是範圍內的對象(類的實例)。它意味着方法被調用的實例 - 這又意味着子類的實例也可以被關鍵字'this'引用。
相關問題
- 1. this.getClass()。getClassLoader()。的getResourceAsStream總是返回null
- 2. C#中的類和方法,這是一個好方法嗎?
- 3. cast <int> c#中的方法不是類型轉換
- 4. 「屬性」類方法而不是C++中的getter&setters?
- 5. C++中的方法是否覆蓋總是在派生類的頭文件中完成?
- 6. .c文件而不是.m文件?
- 7. 這是在C++中創建單例類的正確方法嗎?
- 8. 在C++中存儲對象類型的好方法是什麼?
- 9. sizeof(var)總是在C中工作嗎?
- 10. Array.FindIndex總是在統一C中爲空#
- 11. 什麼是C#中的匿名方法?
- 12. 什麼是C#中的「靜態方法」?
- 13. 什麼是C#中的方法組?
- 14. C++/c#類中的純方法
- 15. Objective-C的派生類可能不是基類的方法
- 16. 在c/C++中實現神經網絡的方法是什麼?
- 17. C++ - 不好的做法是讓類中不是類對象的變量嗎?
- 18. Python:方法M是C類的一個屬性;我如何在C裏使用它?
- 19. C# - 是否有可能覆蓋同一類(不是派生類)中的基類中的方法?
- 20. RegisterChannel錯誤:「是方法,但用作類型」在C#中
- 21. 在C#中訪問內部綁定類方法的更好方法是什麼?
- 22. 獲取方法是不明確的C++
- 23. 在C#中創建不可變類的最簡潔方法是什麼?
- 24. 在C++中,類實例對象做memcpy總是崩潰
- 25. 超級總是在Objective-C中達到NSobject類嗎?
- 26. Coffeescript類的方法總是返回false
- 27. C中的類中的方法#
- 28. 是「T var();」總是在C++中的函數聲明?
- 29. C#抽搐類總是存儲null
- 30. 請共享一個場景,總是在C#中使用派生類對象調用基類的方法
複製自[Java IAQ - 在類C中的方法m中,不是this.getClass()總是C?](http://norvig.com/java-iaq.html#this.class) Peter Norvig。 – Dori 2011-04-09 06:57:55