Java Inheritance Problem

I have the finance application where we can have different types of transactions, like balance enquiry,funds transfer,pin change etc. Now the transaction is a base class and there specific child classes implementing it as per above use cases.

Class Transcation
{
int txnId;
String sourceAccountNumber;
}
Class pinChange extends Transaction
{
int new Pin
}
Class FundsTransfer extends Transaction
{
int amount;
String destAccountNumber;
}

Now I have a BankService object which takes transaction and executes it.

Class BankService
{
executeTransaction(Transaction transaction)
}

I want to know:

  1. how will bankService knows what is the type of trasaction,Do i need to wrap it up in a new Enum like TransactionType and put it in transaction base class?

  2. When the BankService came to know type of transaction, how will it access specific class details? I think it needs to type cast trasaction to specific child class, whicn seems bad to me.Thoughts?