I'm refactoring my code, so I need make decision about interface or abstract class. I have base class Player and classes that inherit base class which are called VideoPlayer, MusicPlayer and so on. Base class have abstract method with no implementation (Play). So, What is preferable way? Put Play in interface or leave it in abstract class. Play in MusicPlayer is not same like Player in VideoPlayer. I do that in C#.
class Player
{
abstract void Play();
}
class VideoPlayer : Player
{
void Play()
{
//Some code.
}
}
class MusicPlayer : Player
{
void Play()
{
//Some code.
}
}