`
张玉龙
  • 浏览: 723478 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

子类共享父类的数据

 
阅读更多

import java.lang.reflect.Field;  
import java.lang.reflect.Method;  



public class TeacherAnswer extends StudentPaper {

	private String teacherAnswer;//老师给的答案

	public String getTeacherAnswer() {
		return teacherAnswer;
	}
	public void setTeacherAnswer(String teacherAnswer) {
		this.teacherAnswer = teacherAnswer;
	}
	
	
	
	
	public void fatherToChild (Object father,Object child)throws Exception{  
        if(!(child.getClass().getSuperclass()==father.getClass())){  
            throw new Exception("child不是father的子类");  
        }  
        Class fatherClass= father.getClass();  
        Field ff[]= fatherClass.getDeclaredFields();  
        for(int i=0;i<ff.length;i++){  
            Field f=ff[i];//取出每一个属性,如deleteDate  
            Class type=f.getType();  
            Method m=fatherClass.getMethod("get"+upperHeadChar(f.getName()));//方法getDeleteDate  
            Object obj=m.invoke(father);//取出属性值               
            f.set(child,obj);  
        }  
    }  
	
	private String upperHeadChar(String in){  
        String head=in.substring(0,1);  
        String out=head.toUpperCase()+in.substring(1,in.length());  
        return out;  
    }  
	
	
	
}




public class StudentPaper {
//父类的member 成员变量应该protected 不应该是private
	protected String studentanswer;
	

	public String getStudentanswer() {
		return studentanswer;
	}

	public void setStudentanswer(String studentanswer) {
		this.studentanswer = studentanswer;
	}


}





public class StudentPaper {

	private String studentanswer;
	

	public String getStudentanswer() {
		return studentanswer;
	}

	public void setStudentanswer(String studentanswer) {
		this.studentanswer = studentanswer;
	}


}



public static void main(String[] args) throws Exception {
                         StudentPaper s = new StudentPaper();
                         s.setStudentanswer("学员的回答");
							Answer a = new Answer();
							a.fatherToChild(s,a);
							System.out.println(a.toString());

	}




分享到:
评论

相关推荐

    浅谈JavaScript面向对象–继承

    子类共享父类的数据和方法的行为,就叫继承。 二、E55如何实现继承?探索JavaScript继承的本质 2.1构造函数之间的“复制粘贴” 第一条路是通过构造函数来继承,这可以理解为子类直接复制了父类构造函数的代码,然后...

    java面试题

    例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望...

    Java基础概念

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把...

    java基础知识共享资格分享

    父类 变量 = 子类的对象(new 构造方法) 接口 变量 = 实现类的对象(new 构造方法) (6)编写类的步骤和创建对象的方式 1.创建类 2.编写成员变量 3.生成构造方法(建议:无参、有参) 4.生成getter和setter方法(说明...

    面对对象的四大特性

    原始类的派生类(子类),而原始类称为新类的基类(父类),派生类可以从它的基类哪里继承方法 和实例变量,并且类可以修改或增加新的方法使之更合适特殊的需要 封装 是把过程和数据包围起来,对数据的访问...

    java很好的面试题

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把...

    2023java常见面试题附答案

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 c.封装: 封装是把...

    java基础面试一百问.doc

    新类继承了原始类的特性,新类 称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里 继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 C.封装: 封装是...

    125条常见的java面试笔试题大汇总

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装:  封装...

    java 程序猿 面试葵花宝典

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 封装:封装是把...

    JAVA基础问题面试大全

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装:  封装...

    java笔试题

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把...

    java面试笔试题大汇总

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。3.封装:封装是把...

    java面试题.zip

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3)封装:封装是把...

    Java面试题及答案

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是...

    JavaEE基础面试题.docx

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3)封装:封装是把...

    java笔试题大汇总

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把...

    Java继承时构造函数的调用

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装:封装是把...

Global site tag (gtag.js) - Google Analytics