SOLID had both the Single Responsibility Principle and the Interface Segregation Principle, to me though, these seem totally interchangeable. To me, an interface is simple a class with no defined implementations.
I believe (though please correct em if I'm wrong) that in .NET an interface is the same as an abstract class with no implementations. I.e., if I replaced all my interfaces with abstract classes then nothing would change (with regards to SOLID).
So... I'd it fair to say that, SOLID can become SOLD?
OK, let me elaborate. I know there are some subtle 'behind the scenes' differences, like multiple inheritance. In the world of SOLID, are there any arguments that apply to either S.R.P. or I.S.P., but not the other?
Note that, in .NET and Java at least, a class must be at least as large an an interface