Using Exceptions, abstract class, extended class, implements class, typecasting