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());
}
分享到:
相关推荐
此外,如果子类之间有共同的逻辑或数据需要共享,应该考虑使用组合而非继承。在某些情况下,使用接口(Interface)可能会是更好的选择,因为接口仅定义方法的规范,而不提供实现,使得遵循接口的类可以拥有更灵活的...
- **继承**:如【例5.1】展示了公有继承的概念,它是子类共享父类数据和行为的方式。通过继承,可以创建具有相似特征但又有不同行为的新类。 - **保护继承**:【例5.3】讲解了保护继承,它限制了子类对父类成员的...
通过继承,子类可以共享父类的公共属性和方法,避免重复编写相同的代码。例如,在人事管理系统中,教师类(Teacher)和学生类(Student)都可以继承一个共同的父类Person,包含姓名、年龄和性别等属性,这样就实现了...
这使得子类可以共享父类的功能,同时增加或修改自己的特性。在Java中,使用`extends`关键字来声明一个类是另一个类的子类,如`class 子类名 extends 父类名 {...}`。需要注意的是,Java不支持多重继承,即一个子类...
2) **Joined-subclass映射**:这种策略将所有子类的数据存储在一个共享的表中,通过增加一个字段来区分不同子类。这个字段通常是一个类型标识符,用来识别实例属于哪个子类。这种方式节省了表的数量,但增加了表的...
共享数据应设为private以限制访问,Java没有内置死锁检测机制,需要程序员自己避免死锁。 以上就是Java数据结构测试题中涉及的主要知识点,它们涵盖了数据结构、软件工程、面向对象编程和多线程等多个方面,这些都...
此外,在子类构造函数中,可以通过`super()`语句调用父类的构造函数,以确保子类在实例化时能正确初始化父类的数据。 函数覆盖(Override)是继承中的另一个关键概念,它发生在子类定义了一个与父类完全相同方法的...
在IT行业中,父类实体(Superclass Entity)是面向对象编程的一个重要概念,它为其他类(子类)提供了一种共享属性和方法的方式。在Java编程语言中,这种概念体现得尤为明显,正如"ingageSDK.jar"这个库文件所暗示的...
继承性是指子类自动共享父类数据结构和方法的机制;多态性是指不同的对象,收到同一消息可以产生不同的结果。 类和对象 类是对一组具有共同属性特征和行为特征的对象的抽象,而对象是类所描述的一个具体的对象。类...
它允许子类从父类那里获得特性,即子类可以访问父类中声明的非私有属性和方法,但不包括构造方法和静态方法。这样,子类可以在保留父类功能的基础上进行扩展和定制,增强了代码的复用性和灵活性。 关于数据库管理,...
多态是指一个父类引用可以指向不同子类的实例,调用子类覆盖父类的方法。这样可以减少类间的耦合,使程序更具扩展性。 方法的重载(Overloading)是指在同一个类中,方法名相同但参数列表不同的方法。方法覆盖...
JAVA学习笔记整理全面涵盖了从基础语法到高级技术的多个领域,包括数据库管理、Web服务器、缓存技术、框架、容器、网络、虚拟机、操作系统、数据结构和操作系统等多个方面。以下将详细介绍其中的关键知识点。 一、...
这样,子类不仅拥有自己的特性,还能共享父类的功能,增加了代码的复用性。 2. **重写**: 子类可以重写父类中的方法,这意味着子类可以提供自己特有的实现。当子类对象调用重写的方法时,执行的是子类的版本,而...
共享数据应设为私有,避免直接访问。Java没有内置的死锁检测机制,需要程序员避免死锁的发生。 9. Java Applet安全限制:Applet在浏览器中运行,有安全限制,例如不能加载本地库(A),不能读取本地文件系统(B),...
- 单表继承:所有子类共享一个表,使用discriminator来区分不同子类。 - 多表继承(联合子类):每个子类有自己的表,子类表包含父类表的主键作为外键。 - 多表继承(共享表):所有子类和父类共用一个表,通过...
选项A、B和C表述正确,而D错误,因为父类包含子类这个说法不准确,应该是子类继承父类的部分特性。 5. Java继承和方法重写:Java的继承使得代码复用成为可能,所有的类都继承自Object类。子类可以重写父类的方法,...
线程间的通信和资源共享需要同步机制,如加锁和解锁,以避免数据不一致性。 5. **I/O流**: - I/O操作涉及在JVM和外部数据源之间传输数据,分为输入流和输出流,字节流和字符流,以及过滤流(如缓冲流)来增强节点...
在Java中,继承允许一个类(子类)从另一个类(父类)继承特性,而多态则使得不同类型的对象能够共享相同的操作。 ### Java 继承 **1. 继承的定义** 继承是一种“is-a”关系,表示子类是父类的一种特殊情况。子类...
在设备系统的数据结构设计中,引入类的概念可以实现子类对父类属性和方法的继承,增强数据结构的可扩展性和复用性。 5. 设备系统空间布局 设备系统空间布局指的是根据物流中心的功能要求,合理布置各种设备的位置,...