```
/**
 * Tests the BankAccount class and their subclasses
 * @author Saul
 *
 */
public class AccountTester 
{
    public static void main(String[] args)
    {
        SavingsAccount sa = new SavingsAccount(2,2000);
        CheckingAccount ca = new CheckingAccount(0);
        TimeDepositAccount hp = new TimeDepositAccount(10,3,15,5);
        test(sa);
        test(ca);
        test(hp);
    }

    public static void test(BankAccount account)
       {
            account.deposit(400);
            account.deposit(2000);
            account.withdraw(100);
            account.deposit(200);
            account.withdraw(300);
          System.out.println(account.getClass() + " before endOfMonth, the balance is: $" + account.getBalance());

          account.endOfMonth();
          System.out.println(account.getClass() + " after endOfMonth, the balance is: $" + account.getBalance());
       }
}

```

Here is my code, and I was wondering if the class can be abstract if there is a main method and also a normal method with an abstract method inside. Would this class called an abstract class? The abstract method is endOfMonth()