I'm getting an error at base.getField2 -- i know that base is returning to me subclassA -- but how can i call the method of child based on base class.
getField2 doesn't have to exist in base class
enum = enum::A BaseClass base = BaseClass::newFromEnum(enum); base.initFields(_line); Table1.Field2 = base.getField2(); //how can i call the intended method
abstract class BaseClass{ str commonField; abstract void initFields(str _line) { } public str getCommonField() { return commonField; } public static BaseClass newFromEnum(Enum _enum) { EnumAtrribute enumAtrribute = new AMIVolkswagenInterfaceTypeAtrribute(_enum); return SysExtensionAppClassFactory::getClassFromSysAttribute(classStr(BaseClass), enumAtrribute); }}
[EnumAtrribute(Enum::A)]class SubClassA extends BaseClass{ str field1; str field2 public void initFields(str _line) { field1 = subStr(_line, 1, 2); field2 = subStr(_line, 73, 1); } public str getField2(str _field2 = field2) { field2 = _field2; return field2; }}
[EnumAtrribute(Enum::B)]class SubClassB extends BaseClass{ str field1; str field2; str field3; public void initFields(str _line) { field1 = subStr(_line, 3, 5); field2 = subStr(_line, 9 , 10); field3 = subStr(_line, 91 , 98); } public str getField2(str _field2 = field2) { field2 = _field2; return field2; }}