Я знаю о концептуальном использовании, лежащем в основе создания абстрактного класса, то есть определения общего интерфейса для его подклассов, где часть реализации оставлена отдельным подклассам.
Правильно ли я полагаю, что естьтехнически нет необходимости в абстрактных классах, так как вы все равно можете переписать метод суперкласса?Были ли просто созданы абстрактные классы, чтобы сделать их понятными для разработчика?
Пример того, что я имею в виду:
// Using an abstract class
abstract class Car
{
int fuel;
int getFuel()
{
return this.fuel;
}
abstract String getColor();
}
class RedCar extends Car
{
String getColor()
{
return "red";
}
}
// Without an abstract class
class Car
{
int fuel;
int getFuel()
{
return this.fuel;
}
String getColor()
{
return "defaultColor";
}
class RedCar extends Car
{
String getColor()
{
return "red";
}
}