展开全部
给你写32313133353236313431303231363533e78988e69d8331333337383235了3个类:
A类:package cn.test;
public class A {
public void test(){
System.out.println(this.getClass());
System.out.println(this.getClass().getSimpleName());
System.out.println(this.getClass().getName());
}
}
B类:package cn.test;
public class B extends A{
}
Test类:package cn.test;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
B b = new B();
b.test();
}
}
结果:
class cn.test.B
B
cn.test.B
你要知道,在继承关系中,不管父类还是子类,这些类里面的this都代表了最终new出来时的那个类型的实例对象,所以在父类中你可以中this获取到子类的信息!
不止一层继承关系时,你可以根据下面:
A类:package cn.test;
public class A {
public void test(){
System.out.println(this.getClass());
System.out.println(this.getClass().getSimpleName());
System.out.println(this.getClass().getName());
System.out.println(this.getClass().getSuperclass());
System.out.println(this.getClass().getSuperclass().getSimpleName());
System.out.println(this.getClass().getSuperclass().getName());
}
}
B类:package cn.test;
public class B extends A{
B(){
// System.out.println("B......");
}
}
C类:package cn.test;
public class C extends B{
C(){
// System.out.println("C...........");
}
}
Test类:package cn.test;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
C c = new C();
c.test();
}
}
结果:
class cn.test.C
C
cn.test.C
class cn.test.B
B
cn.test.B