一直都很迷糊的接口与父类子类问题,终于见到一个曙光了。
接口:
1、首先定义一个接口
public interface IImportData {
public boolean importData(ArrayList<List> dataList);
}
2、书写一个实现以上接口的class
public class ImportExcelManager implements IImportData{
public boolean importData (ArrayList<List> dataList) {
boolean flag=true;
return flag;
}
}
3、调用接口
IImportData importData = (IImportData) Class.forName(“ImportExcelManager”).newInstance();
boolean flag = importData.importData(dataList);
以上就是接口的使用方法,在使用class.forName时,后面应该是实现类的完整路径,所以其返回结果flag为true。
父类与子类的关系
1、书写一个父类
public class CheckData {
public boolean excute() {
System.out.println("掉用父类的校验方法");
return false;
}
}
2、写一个子类继承以上父类
public class MyCheckData extends CheckData {
public boolean excute() {
System.out.println("调用子类的校验方法");
return false;
}
}
3、写一个带有不定参的方法类
public class ImportExcelUtil {
public static void ImportExcel(File file,Object ...o){//不定参传什么都可,其实就是一个数组类型的
System.out.println(o[0]);
CheckData cData = (CheckData) o[2];//这个地方是我最不明白的地方,其实就是将传过来的对象强制转换为父类型。实际应用是调用的子类的方法。
CheckData cData1 = (CheckData) o[3];
// if(cData.excute());
if(cData1.excute());
}
}
4、书写一个main方法进行实现。
public class Test {
public static void main(String[] args) throws ClassNotFoundException {
ImportExcelUtil.ImportExcel(null, 1,2,new MyCheckData(),new CheckData() );
}
}
以上,仅为个人见解。希望对于初学者有帮助。