2011-04-07 14 views

cevap

12

Hayır, öyle değil. Alt sınıflar varsa.

class C { 
    Class m() { 
     return this.getClass(); 
    } 
} 
class D extends C { } 

ve sonra sahip olabilir:

C c = new D(); 
c.m(); // returns D.class 
8

Hayır: Sonra

public class C 
{ 
    public void m() 
    { 
     System.out.println(this.getClass()); 
    } 
} 

public class Child extends C {} 

:

new Child().m(); // Prints Child 
2

sayılı Örnek:

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

Anahtar sözcük, kapsamdaki nesneye (sınıfın örneğine) başvuruyor. Bu, yöntemin çağrıldığı örnek anlamına gelir; bu da alt sınıfların örneklerinin de 'bu' anahtar kelimesiyle ifade edilebileceği anlamına gelir.