子类使用父类构造方法设置自己的属性

20次阅读

共计 1255 个字符,预计需要花费 4 分钟才能阅读完成。

首先需要知道执行流程,当 new 一个子类的实例时,执行顺序为 父类构造方法 —》子类属性赋值

所以可以通过对子类属性设置 set 和 get 方法来实现对子类属性的赋值,请看以下代码

父类:

 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();}

子类:

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);
}

@Override
public 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);
}
}
正文完
 0