Given the following interface for a list, comment on it from the perspective of an ADT. Consider what is in there and what is missing, what is right and what is wrong. Solution Note Points of Interface: Interface provides the declaration of abstract methods that needs to be implemented in the class by which the interface is implementing. Interface does not have a construcor.It contains the abstract method declaration and static constants. ------------------------------------------------------------------------------------------------------------------------------------------ //Comments are provide which is valid and invalid methods public interface ArrayList { //It is not valid since the class implementing the interface will have to implement only methods //not class constructor //Invalid declaration // public ArrayList(void) { List = 0 }; //constructor - initializes list to be empty //Invalid abstract method since the return type of the method Insert is missing public Insert(itemtype item, int index); //verifies index & inserts item at position index in list //valid abstract method public int Search (itemtype item); //searches list & returns position of item. Returns -1 if not found //valid abstract method public int CountItem ( itemtype Item); //invalid abstract method  ,methods should be public since //the methods need to implemented in the class //validates that index is position within list private boolean VerifyIndex (int index); } --------------------------------------------------------------------- Correct interface declaration public interface ArrayList { public void Insert(itemtype item, int index); public int Search (itemtype item); public int CountItem ( itemtype Item); public boolean VerifyIndex (int index); } .