It's just the same semantics as inheritance between classes.
In the OOP world, A derived type Inheriting a base type when it's a more specific version of the base type - whether this type is an interface or a class the principle stays the same.
Here's an example from the .Net framework: The IList interface inherits the ICollection interface which inherits the IEnumerable interface.
The IEnumerable interface provides the GetEnumerator() method which is needed for enumerating using the foreach loop.
The ICollection Adds new capabilities: the Count property and the CopyTo method.
The IList adds even more capabilities - the indexer, the Add and Remove methods and so on.
So an IList is a more specific type of an ICollection, which is a more specific type of an IEnumerable.
The fact that interfaces can inherit one another means that you can have a polymorphic point of view also on interfaces and not only on classes - which can help simplify your code very much when dealing with multiple interfaces inheriting each other.
One more benefit of this is the fact that you can declare extension methods on an interface, and use it on any class that implements this interface whether directly or indirectly by implementing an interface that inherits it - just like in classes.
As for the question of why not remove the inheritance and implement separately the two interfaces - that would make sense if the interfaces was unrelated - like, for instance, in the Control class (in System.Windows.Forms) - It implements many interfaces, like IDropTarget and IComponent which are unrelated.
IPrimate : IMammal : IVertebratefor example. Each of those add specific characteristics to what it inherits that others may not. For example you could also haveIFish : IVertebratesince fish and mammals have some distinct separate properties.Ilayer2in each implementer ofIlayer1?ILayer1adds functionality toILayer2, orILayer2is something thatILayer1also makes use of (likeIComparable) then it makes perfect sense. Real-world examples would make it more obvious.