Проблема : со следующими классами я пытаюсь выбрать базовый класс во время выполнения в зависимости от переменной экземпляра родительского класса в Java. Я считаю, что в OOPS должно быть какое-то фундаментальное свойство, которое может помочь мне достичь этого, которого мне просто не хватает.
class Transaction{
int id;
enum transactionType;
}
class ATypeTransaction extends Transaction{
/* bunch of instance variable specific to ATypeTransaction */
}
class BTypeTransaction extends Transaction{
/* bunch of instance variable specific to BTypeTransaction */
}
/* The event can be triggered with any transactionType as declared in the enum TransactionType as each event would be associated with one transaction.*/
class Event{
int eventId;
enum transactionType;
}
В зависимости от transactionType, я должен подготовить Transaction Payload, и атрибуты будут разными для разных баз классы, как показано ниже.
Мой подход : я пытаюсь использовать что-то вроде этого (полиморфизм stati c в switch-case) в попытке разрешить экземпляр транзакции на основе Проблема с этим подходом в том, что я все еще не могу получить дочерний класс. Скорее я получаю родительский класс, который не дает мне получить доступ к атрибутам дочернего класса.
public Transaction selectTransaction(TransactionType transactionType){
Transaction transaction;
switch(transactionType) {
case = "AType":
transaction= new ATypeTransaction();
break;
case = "BType":
transaction= new BTypeTransaction();
break;
}
return transaction;
}
Пожалуйста, помогите мне с этой проблемой и предоставьте хороший дизайн для ее решения. Заранее спасибо.