展开全部
给你写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
这篇博客探讨了Java中的继承关系以及如何通过`this`关键字获取类的信息。在A类中定义了一个`test()`方法,该方法打印出类的全名、简单名以及超类的信息。当创建B类作为A类的子类,并通过B类实例调用`test()`方法时,输出显示了子类B的相关信息。进一步扩展到C类继承B类,调用`test()`同样能展示多层继承下的类信息。这展示了Java中`this`关键字在继承结构中的应用。
171万+

被折叠的 条评论
为什么被折叠?



