Really what is the use of Abstract Class

in

What is the use of Abstract class

Posted Answers

A:

The abstract class is a base class for a variety of classes that offers common members n methods. If we want to hold common properties for different classes then we use abstract class. If we need common functionalities among different classes then we use interfaces.

Abstract class is a class that has no direct instances, but whose descendants may have direct instances. There are case i which it is useful to define classes for which the programmer never intends to instantiate any objects; because such classes normally are used as bae-classes in inheritance hierarchies, we call such classes abstract classes These classes cannot be used to instantiate objects; because abstract classes are incomplete. Derived classes called concrete classesmust define the missing pieces.

Abstract classes normally contain one or more abstract methods or abstract properties, such methods or properties do not provide implementations, but our derived classes must override inherited abstract methods or properties to enable obejcts ot those derived classes to be instantiated, not to override those methods or properties in derived classes is syntax error, unless the derived class also is an abstract class.

In some cases, abstract classes constitute the top few levels of the hierarchy, for Example abstract class Shape with abstract method Draw() has tow derived abstract classe Shape2D & Shape3D inherites the method Draw() & also do not provide any implementation for it. Now we have normal classes Rectangle, Square & Circle inherites from Shape2D, and another group of classes Sphere, Cylinder & Cube inherites from Shape3D. All classes at the bottom of the hierarchy must override the abstract method Draw().

http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=72


Answer by admin

A:

Abstact classses are those classes which can have abstact as well as Method with body . we use Abstract classes becouse we wont ot implement the Polymorphism.yes we should prefer the abstarct class becouse it will give us the addtional method declaration in the class.

We use Abstract class and interface to enforce some rules to the classes which extends/implements. For example we can define a class say Bird and we can declare methods say Fly() Walk() . This means whatever the class that is derived from Bird has to override or give definition for Fly() and Walk() and therefore we are making sure that all the derived classes follows or has the common functionalities. In other way the classes derived from superclass should have common properties. In addition to this the derive class can have its own methods like Swim() ...

In case of Abstract class we can define COMMON functionalities in super class and those can be used in the derived class where as in Interface we cant do that. ( this i would say as advantage of abstract class)

In case of Interface the derived class can implement any number of interface but restricted to extend only one abstract class (this i would say as advantage of Interface)

Thanks

Prasanna


Answer by admin