What's de advantage ov Interfaces and vice versa the advantage of the Abstract Classes
Thanks
What's de advantage ov Interfaces and vice versa the advantage of the Abstract Classes
Thanks
An abstract class is a class that can not be instantiated but that can contain code.
An interface only contains method definitions but does not contain any code. With an interface, you need to implement all the methods defined in the interface.
If you have logic that will be the same for all the derived classes, it is best to go for a abstract class in stead of an interface.
You can implement multiple interfaces but only inherit from one class.
Greetz,
Geert
Geert Verhoeven
Consultant @ Ausy Belgium
Hi, Garegin
An abstract class can contain internal member variables, and can contain basic behaviour in the form of methods that have been coded.
An interface can have neither of the two.
Since it is a frequently asked question, you can see the following answers by others:
http://en.csharp-online.net/Interfaces_and_Abstract_Classes
http://www.codeproject.com/csharp/abstractsvsinterfaces.asphttp://forums.microsoft.com/MSDN/ShowPost.aspx PostID=1118027&SiteID=1
If you have further questions, pls feel free to let us know. Thank you.
Good question... interfaces and abstract classes have so much in common it's hard to make a desision at times.
Here's a quote from "The Complete Reference C# 2.0" by Herbert Schildt that I like:
"When you can fully describe the concept in terms of "what it does" without needing to specify any of "how it does it", then you should use an interface. If you need to include some implementation details, then you will need to represent your concept in an abstract class."
Happy designing,
Jim Tomasko
Thanks for such a good example!
Hope we'll learn many things from each other.
Thank You.
I think Ernst meant that a class that implements an interface doesn't "inherit" from the interface. (Although interfaces can inherit from other interfaces, which I believe is what the link is talking about.)