Default and Static methods in Java8

Java 8 introduces a new concept of default and static method implementation in interfaces. Before Java 8, interfaces could have only abstract methods but now It allows the interfaces to have methods with implementation without affecting the classes that implement the interface and provides backward comparability so that existing interfaces can use the lambda expressions without implementing the methods in the implementation class. Eg: Now List or Collection has forEach method declaration which is only possible because of default declaration. Default Method: The default methods are also known as defender methods or virtual extension methods and are defined inside the interface and tagged with default. These methods are non-abstract methods. What about Multiple Inheritance? As we know adding method definitions in interfaces can add ambiguity in multiple Inheritance and if a java class implement multiple ...