2011-04-07 5 views

답변

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'키워드로 참조 할 수 있습니다.

관련 문제