2011-04-07 6 views

Respuesta

12

No, no lo es. Si hay subclases

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

y luego se puede tener:

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

Nop:

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

public class Child extends C {} 

continuación:

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

Nº Ejemplo:

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

La palabra clave se refiere al objeto (instancia de la clase) que está dentro del alcance. Significa la instancia en la que se llamó el método, que a su vez significa que las instancias de las subclases también pueden ser referidas por la palabra clave 'this'.

Cuestiones relacionadas