Interfaces and Abstract class
Interfaces An Interface contains definitions for a group of related functionalities that a class can implement. Interfaces are contracts that your class should abide by. Requirement Suppose you are creating a Web Automation tool, that targets IE and FF browser and supports the functionality of Opening and Closing the browser. Here you can notice that the functionalities will remain the same for both the browsers and also other new browsers which you can support in the future. We can have individual classes implementing these functionalities for respective browsers however we want all the classes to implement the functionalities(Opening and Closing Browser) which we defined earlier. So how can we force the class to implement the functionalities or contracts which we defined? Well that's where interfaces help We can define an interface or contract with all our requirements and let other browser classes provide their implementations for those fun...