srkp.net
当前位置:首页 >> jAvA 父类如何在运行期动态获取子类类名 >>

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

在父类中设计一个获取类名的方法 protect String getName(){ return getClass().getSimpleName(); } 到时直接调用就可以获取子类类名了

java中是可以多继承的,所以子类获得父类的类名,可以使用getSuperClass()这个方法来获得,示例如下: public class Test1 extends Date { public static void main(String[] args) { new Test1().test();//测试获得父类类名方法 } public vo...

无法获取,因为父类不知道是谁继承了他

比如,有这样一个类, class T1 extends HashMap { } 可以通过下面代码获得HashMap的参数: Type gs = T1.class.getGenericSuperclass(); if(gs instanceof ParameterizedType) { ParameterizedType pt = (ParameterizedType)gs; Type[] ts = pt...

1.从对象的内存角度来理解. 假设现在有一个父类Father,它里面的变量需要占用1M内存.有一个它的子类Son,里面的变量需要占用0.5M内存. 现在通过代码来看看内存的分配情况: 2.f = new Father();//系统将分配1M内存. Son s = new Son();//系统将分配...

Fu f= new Zi() 首先你要知道“Fu f”是放在栈中,而“new Zi()”是放在堆中;编译的时候,是在的栈中f,就是Fu对象,父类变量;而实际运行的时候,f会指向堆中的“new Zi()”,就是子类对象,自然运行子类的函数

1.从对象的内存角度来理解. 假设现在有一个父类Father,它里面的变量需要占用1M内存.有一个它的子类Son,里面的变量需要占用0.5M内存. 现在通过代码来看看内存的分配情况: 2.f = new Father();//系统将分配1M内存. Son s = new Son();//系统将分配

class parent{ /** * 获取子类的类名 */ public String getClassName(){ return this.getClass().getSimpleName(); } //父类中直接调用 String className = getClassName(); }

不可以,没有这样的用法或者需求。 子类继承父类,所以子类拥有父类公开的“性质”,因此子类可以调用从父类继承下来的和父类公开的方法。而同一个父类可以有多个子类,并且父类并不知道有什么子类,怎么调用子类的方法呢?

方法只要名字相同、参数的个数和类型都相同,那么子类的方法就会覆盖父类的方法,不论public还是private,不会同时运行。 父类的方法如果不想让子类重写,使用final关键字修饰方法就可以了。

网站首页 | 网站地图
All rights reserved Powered by www.srkp.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com