I removed the following from
InterfaceVsAbstractClass, because I didn't understand it and suspected that it might be more confusing than of help. I would appreciate some clarification on what was meant by the statement - hopefully we can find a more clear wording.
If you think that there is some generalized concept to be followed by the other classes go for abstract classes. But if you think that there is nothing general (i.e. may be a business requirement) then go for interfaces only.
Abstract Classes can have method implementations in addition to method signatures. Interfaces have only method signatures - they do not allow method implementations.
Abstract Class have Concrete Method .But In Interface Only abstact method and Public Method.