Suppose that a Java class A extends another class B, and implements interface If1. B extends the abstract class Ab and implements interface If2. (a) What are the requirements that A should meet, in terms of contracts with other classes and interfaces? (b) What are the requirements that B should meet, in terms of contracts with other classes and interfaces?