导航:首页 > 编程语言 > java反射调用父类方法

java反射调用父类方法

发布时间:2022-05-01 07:40:05

java中重写父类方法后,这个方法如何调用父类私有属性方法

父类的私有属性和方法是不被子类继承调用的,如果你非要这么做可以
1、在父类中另外定义protected 的方法操作私有方法,子类调用该方法
2、将私有方法改为protected
3、使用反射,获取父类所有方法,根据名称调用

❷ 关于java继承中调用父类方法的问题

父类中,是static的,不使用super,而是 Quadrangle.draw

如果不是static的,子类中,没有draw方法,可以省掉;子类中有draw方法,则必需super

❸ java关于子类实例化父类与反射的一个问题

Fruit fruit = new Apple();

首先这句话中,你通过new关键字实例化的是Apple的对象,由于Fruit是Apple的父类,因此Fruit类型的引用可以指向Apple类型的对象,并不意味着fruit变量是Fruit类型的对象。

因此,fruit.getClass().getName()的打印结果应该是Apple,我自己也是工作没两年,这块我没记错应该是Java多态性的内容,再回头看看吧。

❹ 求教Java里面如何反射invoke父类的overriden方法

import java.lang.reflect.Method;

public class InvokeTest {

public static void main(String[] args) {
Class<?> clazz;
Object obj;
try {
InvokeTest it = new InvokeTest();
clazz = Class.forName("com.test.invoke.User");
obj = clazz.newInstance();

Param p = new Param();
p.setMethodName("introction");
p.setParamTypes(new Class<?>[]{String.class,int.class});
p.setParamValuese(new Object[]{"Tom",20});
Object result = it.call(obj, p);
System.out.println(result+"");

} catch (Exception e) {
e.printStackTrace();
}

}

/**
* 反射方法调用
* @param declareCLass classInstatnce
* @param param 参数设置类
* @return
* @throws Exception
*/
public Object call(Object declareCLass, Param param) throws Exception {
Class<?> clazz = declareCLass.getClass(); //获取class对象
String name = param.getMethodName(); //从param类中获取调用方法名
Class<?>[] methodParamTypes = param.getParamTypes(); //从param类中获取调用方法参数类型
Object[] objs = param.getParamValuese(); //从param类中获取调用方法参数值
Method method = clazz.getDeclaredMethod(name, methodParamTypes); //通过class对象获取对应的方法
return method.invoke(declareCLass, objs); //invoke调用方法,传入 classInstance、 参数值
}

}

/**
* 参数设置类
* @author Administrator
*
*/
class Param {
private String methodName;

private Class<?>[] paramTypes;

private Object[] paramValuese;

public String getMethodName() {
return methodName;
}

public void setMethodName(String methodName) {
this.methodName = methodName;
}

public Class<?>[] getParamTypes() {
return paramTypes;
}

public void setParamTypes(Class<?>[] paramTypes) {
this.paramTypes = paramTypes;
}

public Object[] getParamValuese() {
return paramValuese;
}

public void setParamValuese(Object[] paramValuese) {
this.paramValuese = paramValuese;
}
}

class User {

private String name;

private int age;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
System.out.println("called method setName value = " + name);
}

public int getAge() {
return age;
}

public void setAge(int age) {
System.out.println("called method setAge value = " + age);
this.age = age;
}

public String introction(String name,int age){
return "My name is "+name+". I'm "+age+" years old.";
}

}

❺ java 反射 访问父类私有成员

可以看看这个 但是跟反射没什么关系。
利用多态,子类虽然访问不了父类的私有变量,但是可以通过方法访问,see

class a{
private int i = 11;
public void show(){
System.out.println(i);
}
}

class b extends a{
private int j= 12;
public static void main(String[] args){
a aa = new b();
aa.show();
}
}

❻ Java 里怎么调用父类的父类的方法

如果该方法没有被子类及其父类重写的话,直接用子类对象就可以调用了,如:child.getName();
只要两者有一个重写了,就必须用super.super来调用:super.super.getName();

class A{
public void print(){
System.out.println("I am class A.");
}
public void print(String name){
System.out.println("Hello "+name+", I am class A.");
}}
class Aa extends A{
public void printInfo(){
super.print("SubClass");
}
}

❼ Java里面,反射父类里面数字类型字段,怎么set值

你在invoke反射方法时。这个你要调用父类的构造方法或者set方法来赋值。就可以的。

❽ java 怎么在子类中调用父类方法

main方法中是可以的,父类是不能调用子类
的方法的。跟你说底层实现你也不懂,从面向对象上来说吧。
父类先于子类存在,子类从父类中生出来,所以子类知道父类,可以调用父类方法。但父类不知道子类,子类可以任意的出生,只要你愿意,所以父类无法调用子类,他不知他会有这样的子类,也不知有多少个子类,但子类的父类是唯一的。
简单点就是在java中父类是不能调用子类的方法的。

❾ java中调用父类构造方法

非静态的变量在别的类里面是不能直接用的。。若要使用的话,就要通过实例化该父类,通过【实例名.属性名】来访问、、、你自己看一下把!! class
Point{
int
x,y;
static
int
c;
public
Point(int
m,int
n){
x=m;
y=n;
System.out.println("带参数的父类给实例化了。x:"+x+"
y:"+y);
}
public
Point(){
c++;
System.out.println("第"+c+"次被创建子类对象");
}
}
public
class
Point3D
extends
Point{
public
static
void
main(String
[]
args){
Point
m1=new
Point3D();
Point
m2=new
Point3D();
Point
m3=new
Point3D();
System.out.println(Point.c);
Point
m4
=
new
Point(7
,
5);
System.out.println("父类x属性的值为:"+m4.x);
System.out.println("父类y属性的值为:"+m4.y);

}
}

阅读全文

与java反射调用父类方法相关的资料

热点内容
UG编程如何多平面轮廓2D倒角 浏览:437
视频压缩渐变纹 浏览:851
什么app能看财经新闻 浏览:39
数学奇迹神奇运算法 浏览:359
大厂的程序员的水平如何 浏览:700
遗传算法入门经典书籍 浏览:879
源码炮台脚本 浏览:621
在位编辑命令 浏览:348
曲式分析基础教程pdf 浏览:15
php生成静态html页面 浏览:965
怎么分割pdf 浏览:813
压缩垃圾报警器 浏览:629
小公司一般都用什么服务器 浏览:968
java获取时间gmt时间 浏览:821
为什么csgo一直连接不到服务器 浏览:504
安卓登ins需要什么 浏览:836
机器人算法的难点 浏览:227
全自动化编程 浏览:728
程序员高薪限制 浏览:693
压缩图片压缩 浏览:76