首先需要知道执行流程,当new一个子类的实例时,执行顺序为 父类构造方法—》子类属性赋值所以可以通过对子类属性设置set和get方法来实现对子类属性的赋值,请看以下代码父类:

 [code lang="java"] import com.taiji.tr.errorlog.MyLogger;import java.util.Set;/** * @Author: liyj * @Description:* @Date:Created in 2018/1/25 * @Modified by : */ public abstract class ProcedureSql {CompProperDataBean compProperDataBean;public ProcedureSql(CompProperDataBean compProperDataBean) { this.compProperDataBean = compProperDataBean; init(); }public CompProperDataBean getCompProperDataBean() { return compProperDataBean; }public abstract void init(); } [/code]

子类:[code lang=“java”]package com.taiji.tr.bean;import com.taiji.tr.errorlog.MyLogger;/*** @Author: liyj* @Description: <p/>* @Date:Created in 2018/1/31* @Modified by :*/public class HiveProcedureSql extends ProcedureSql {public String tempSqlStr;public String getTempSqlStr() {return tempSqlStr;}public void setTempSqlStr(String tempSqlStr) {this.tempSqlStr = tempSqlStr;}public HiveProcedureSql(CompProperDataBean compProperDataBean) {super(compProperDataBean);}@Overridepublic void init() {//判断是否需要创建分区if (compProperDataBean.isPartition()) {//创建分区setTempSqlStr("’ INTO table " + compProperDataBean.getTable_name() + " PARTITION (");} else {setTempSqlStr("’ into table " + compProperDataBean.getTable_name());}MyLogger.info(“sql语句”, compProperDataBean.getIdentify(), tempSqlStr);}}[/code]