An abstract class can have abstract functions and those functions can have code in them. An interface is only method headers and no implementation. An abstract class cannot be an object because it is supposed to be general. If we were making an FPS game we could first have an abstract class called Gun and then have classes for AK-47 and RPG that would have their own specific implementations but would be a child of Gun. In this case we cannot make a "Gun" object because it is abstract and doesn't make sense to do so, you can however make an AK-47 object.
There is no right answer. Having been in this role for many years, I can only answer with what works well for me. I have spoken with many other people while traveling, about how they like to do it. In most cases, however, we all tend to agree that my travel plan is one that works well for themselves, too.
I went into my background and training and specifically went into Target Account Selling qualifying processes and how to not focus on selling technology... instead focus on business solutions. This could have gone completely south, but they had to admit that their technology strategy had been failing for years against Cisco.
Code Division Multiple Access, Time Division Multiple Access, Frequency Division Multiple Access. These are digital radio modulation techniques designed to put more carriers into the same bandwidth, raising the capacity of given radio spectrum to carry traffic.