In Java, a lambda expression can be used where a target type is a functional interface. A functional interface is an interface that contains exactly one abstract method. This concept is also known as a Single Abstract Method (SAM) type.
Analyzing each interface:
Interface A: Contains a single default method ma(). Since default methods are not abstract, A has no abstract methods.
Interface B: Extends A and adds a static method mb(). Static methods are also not abstract, so B has no abstract methods.
Interface C: Extends B and declares two abstract methods: ma() (which overrides the default method from A) and mc(). Therefore, C has two abstract methods.
Interface D: Extends C and adds another abstract method md(). Thus, D has three abstract methods.
Interface E: Extends D and provides default implementations for ma(), mb(), and mc(). However, it does not provide an implementation for md(), leaving it as the only abstract method in E.
For an interface to be a functional interface, it must have exactly one abstract method. In this case, E has one abstract method (md()), so it qualifies as a functional interface. However, the question asks which interface can be the target of a lambda expression. Since E is a functional interface, it can be the target of a lambda expression.
Therefore, the correct answer is D (E).