Which two reasons should you use interfaces instead of abstract classes?
A.
You expect that classes that implement your interfaces have many common methods or fields, or require
access modifiers other than public.
B.
You expect that unrelated classes would implement your interfaces.
C.
You want to share code among several closely related classes.
D.
You want to declare non-static on non-final fields.
E.
You want to take advantage of multiple inheritance of type.
Explanation:
http://www.programmerinterview.com/index.php/java-questions/interface-vs-abstract-class/
B,E
https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
B. You expect that unrelated classes would implement your interfaces.
E. You want to take advantage of multiple inheritance of type.
B,E. is correct
B, E
why not C. interface is best choice for closely related classes to share code from interface.