Then define DoubleEndedListInterface by extending this interface and ListInterface. Write a class that implements DoubleEndedListInterface. Represent the list's entries by using a chain of nodes that has both a head reference and a tail reference. Write a program that thoroughly tests your class.