This video will explain when to use abstract keyword during multiple class and code re use. It begins with simple inheritance performed on a class called Bank.java with extend keyword. And How this parent class bank gets reused overtime when there is a similar requirement of class comes in picture. We use the abstract keyword to form a template of this parent class. and later it addons default keyword to address the diamond problem on multiple inheritance. and finally it addons the interfaces to have flexibility of multiple class implementation in java.