Interfaces and Abstract Classes

S

stephen

Hi all,

I have an interface
interface ICar
{
void accelerate(double amt);
void brake(double amt);
double getSpeed();
}

and I create an abstract class
public abstract class GenericCar : ICar
{
protected double _speed;

public abstract void accelerate(double amt);

sealed override public void brake( double amt )
{
if( ( _speed - amt ) < 0.0 )
{
_speed = 0.0;
return;
}
_speed -= amt;
}

sealed override public getSpeed()
{
return _speed;
}
}

Class TestCar : GenericCar
{
//I want to have implementation for accelerate only
//and want to control brake and getSpeed from abstract class
}

I read on MSDN that If I have sealed override then I can access the abstract
classes methods
but it gives me an error "No Suitable method to override"

Please advice,
Stephen
 
B

Brian Gideon

stephen said:
Hi all,

I have an interface
interface ICar
{
void accelerate(double amt);
void brake(double amt);
double getSpeed();
}

and I create an abstract class
public abstract class GenericCar : ICar
{
protected double _speed;

public abstract void accelerate(double amt);

sealed override public void brake( double amt )
{
if( ( _speed - amt ) < 0.0 )
{
_speed = 0.0;
return;
}
_speed -= amt;
}

sealed override public getSpeed()
{
return _speed;
}
}

Class TestCar : GenericCar
{
//I want to have implementation for accelerate only
//and want to control brake and getSpeed from abstract class
}

I read on MSDN that If I have sealed override then I can access the abstract
classes methods
but it gives me an error "No Suitable method to override"

Please advice,
Stephen

Stephen,

The sealed and override keywords do not affect access to the method.
You certainly can access a sealed override method from a concrete
class. What you cannot do is redefine it's implementation since it is
marked as sealed. The error message leads me to believe that you were
trying to override brake and getSpeed in TestCar. If you want to
override those methods in TestCar then don't mark them as sealed in
GenericCar.

Brian
 
S

stephen

Thanks Brian and Architect,

I read an article that uses New Keyword and I tried it and it worked but I
have to test whether you can override it in the derived class.

Thanks for the info,
Stephen
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top