Here, I am trying to explain the use of
the constructor in the abstract class.
I am Considering Shape as the abstract class and Square and rectangle as the derived
class.
public
abstract class
Shape
{
protected
double x = 10;
protected
double y = 10;
protected
Shape()
{ }
protected
Shape(double x, double
y)
{
this.x
= x;
this.y
= y;
}
public
abstract double
AreaClaculate();
}
public
class square
: Shape
{
public
square()
{ }
public
override double
AreaClaculate()
{
return
x * y; // here x=10 and y=10
works, i set x=y due to square, if any we have any other shape other than square
then x!=y
}
}
public class
rectangle :
Shape
{
public
rectangle(double x,
double y)
:
base(x, y)
// it will call Shape(double x, double y) at base class
{
}
public
override double
AreaClaculate()
{
return
x * y; ///
hre x and y will pass from runtime
}
}
static
void Main(string[]
args)
{
square s =
new square();
double
areasq= s.AreaClaculate(); //
we will get 100, because x=y=100 and x*y=100
rectangle r =
new rectangle(10,5);
// behind the scene 10,5 are passing to
shape(double x, double y) at base class
double
arearect = r.AreaClaculate();
// we will get 50.
}