父类中调用子类构造函数实例化子类的实现
来源:互联网 发布:解压软件 360 编辑:程序博客网 时间:2024/06/05 18:09
父类中调用子类构造函数实例化子类的实现
作者BLOG:http://blog.csdn.net/fenglibing
通过在父类中调用子类的构造函数,达到初化使化子类的目的,并取得子类的返回对象。
父类的JAVA实现类:
package test4;
import java.lang.reflect.Constructor;
/**
* 类说明:通过父类调用子类中的构造函数,将当前父类中的参数通过构造函数传递给子类,便于子类做相关的初使化操作。
*/
public abstract class Parent {
String name;
int age;
protected Parent(String name,int age){
this.name=name;
this.age=age;
print();
}
/**
* 获取父类的子类对象
* @return 子类对象
*/
public static Parent getInstance(){
Parent parent=null;
try {
String name="张三";
int age=20;
/*子类*/
Class cclass=Class.forName("test4.Child");
/*构造函数需要的参数*/
Class[] types = new Class[] {String.class,int.class };
/*获取构造函数对象*/
Constructor constructor = cclass.getConstructor(types);
if (constructor == null)
return null;
//调用指定对象的构造方法,并返回
parent=(Parent) constructor.newInstance(new Object[]{name, age});
System.out.println(parent.getClass());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return parent;
}
/*简单的打印函数,以便观察输出*/
public void print(){
System.out.println("This is partent.");
}
}
示例子类:
package test4;
/**
* 类说明:示例子类
*/
public class Child extends Parent {
public Child(String name,int age) {
super(name,age);
System.out.println("child:name--"+name+":age---"+age);
}
/*简单的打印函数,以便观察输出*/
public void print(){
System.out.println("This is Child.");
}
}
调用示例类:
package test4;
/**
* 类说明:调用示例
*/
public class Caller {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Parent parent=Parent.getInstance();
}
}
运行子类,结果如下:
This is Child.
实例化子类:child:name--张三:age---20
被调用的类:class test4.Child
这是针对父类中有非默认构造函数的一种实现,如果是父类中只有默认构造函数,那处理要相对简单得多,不需要构造函数及调用,只需要简单的反射操作即可。
- 父类中调用子类构造函数实例化子类的实现
- 父类中调用子类构造函数实例化子类的实现
- 父类中调用子类构造函数实例化子类的实现
- 子类实例化构造函数调用
- java 子类对象的实例化 调用构造函数先后
- 子类继承父类,那么子类实例化时对象调用的是父类还是子类的构造函数?
- 子类调用父类的构造函数
- 子类调用父类的构造函数
- 子类实例化与构造函数
- 子父类中构造函数的特点-----子类实例化过程
- JAVA子父类中构造函数的特点-子类实例化过程
- 【继承】----子父类中的构造函数,子类的实例化过程
- 子类的构造函数
- 构造函数,密封类密封方法,子类调用父类的构造方法, Projector,类的实例化声明
- 为什么在实例化子类的对象的时候会调用先调用父类的构造函数
- 在子类的构造函数中调用虚函数
- 子类实例化的调用顺序
- 有父类的子类实例化时,子类与父类的成员变量,构造函数,代码块的执行顺序
- 理解C语言中变量的实质
- 基本目录结构和功能 (amlogic open linux)----学习笔记
- 关于飞凌2440(FL2440,OK2440-III,TE2440-II)的分区问题
- Java 前途
- WPF 4 DataGrid 控件 (基本功能篇)
- 父类中调用子类构造函数实例化子类的实现
- e/class//类库文件类简介
- 通过反射创建新类示例的两种方式及比较
- Winfrom实现datagridview拖拽至TextBox(C#)
- 使用OE制作arm-linux交叉工具链
- Linux.Tools.minicom的配置和使用
- 用 Navicat for Oracle 管理 Oracle10g/11g 数据库
- C#得到汉字的GB2312码
- 【定下吧,我忘了】利用微分中值定理证明函数(我思考的解法)