@startuml

title __Bank Application Class Diagram__\n


abstract class BankAccount {
    - accHolder: Person
    - accNum : int
    # balance : double
    + BankAccount()
    + BankAccount(accHolder: Person, accNum: int, balance: double)
    + describeAccount() : String
}

class CurrentAccount {
    - TYPE : String
    + CurrentAccount(accHolder: Person, accNum: int, balance: double)
    + describeAccount() : String
}

class SavingsAccount {
    - TYPE : String
    + SavingsAccount(accHolder: Person, accNum: int, balance: double)
    + describeAccount(): String
}

class Person {
    - address : String
    - name : String
    + Person(name: String, address: String)
    + Person()
    + toString() : String
}

BankAccount o-- Person : has a
CurrentAccount -up-|> BankAccount
SavingsAccount -up-|> BankAccount

@enduml
