java 父类如何在运行期动态获取子类类名

在java运行中父类动态的获取子类的类型,并获取子类的类名。不知道java支不支持这样的操作。... 在 java 运行中父类动态的获取子类的类型, 并获取子类的类名。 不知道java 支不支持这样的操作。 展开
 我来答
巫难天地难m
2015-03-09 · TA获得超过263个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:135万
展开全部

给你写了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

playboykpk
2015-07-29 · 超过26用户采纳过TA的回答
知道答主
回答量:47
采纳率:100%
帮助的人:31.6万
展开全部
在父类中设计一个获取类名的方法
protect String getName(){
return getClass().getSimpleName();
}
到时直接调用就可以获取子类类名了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-03-09
展开全部
所有类都有一个公共的父类,那就是java.lang.Object,看JDK表述: public class Object类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法 所以抽象类有父类啊,如果没有写继承某个父类,那他的父类就是java.lang.Object
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式