Nie bardzo rozumiem po co tworzyć metody abstrakcyjne zamiast tego rozbić na samą klasę bazową + interface. Mógłby mi ktoś to rozświetlić?
*Tak, przeczytałem już trochę postów na stackoverflow itp. Wiem mniej więcej jaka jest różnica pomiędzy tymi dwoma bytami, ale to jedno pytanie nie daje mi spokoju *
abstract class Player
{
// some base properties
// and methods that i want to inherit
abstract void Play();
}
class VideoPlayer extends Player
{
void Play()
{
//Some code.
}
}
class MusicPlayer extends Player
{
void Play()
{
//Some code.
}
}
// ====================================== //
interface IPlayable
{
void Play();
}
abstract class Player
{
// some base properties
// and methods that i want to inherit
}
class VideoPlayer extends Player implements IPlayable
{
void Play()
{
//Some code.
}
}
class MusicPlayer extends Player implements IPlayable
{
void Play()
{
//Some code.
}
}