P.S .: недавно начал изучать java ответ основан на моих наблюдениях, пожалуйста, поправьте меня, если я ошибаюсь.
Абстракция и полиморфизм в основном в глубине делают почти одинаковую работу в программировании.
Давайте возьмем машину для примера ..
не имеет значения, будь то мини-фургон Ford, экзотический Ferrari, внедорожник Land-Rover или седан BMW, все они следуют базовому дизайну автомобиля: двигатель, руль, коробка передач, фары , индикаторы и список можно продолжить. что отличает их, так это их специфические реализации, например, у Ferrari может быть более мощный двигатель, чем у минивэна, у внедорожника может быть другая коробка передач
следовательно, автомобиль (суперкласс здесь) был реализован подклассами (седан, внедорожник, мини-фургон, экзотика)
Это полиморфизм , основная идея наследуется или реализуется путем добавления другой спецификации. четырехколесное транспортное средство (суперкласс), реализуемое в различных формах (подклассах)
Теперь, Абстракция , по определению это означает скрывать детали и заставлять пользователя видеть, что ему требуется ..
Давайте снова возьмем пример автомобиля .. Вы используете механизм, но вы точно не знаете механизм того, как именно механизм работает, изменяет скорость и все ...
Теперь перейдем к кодированию Part.
Абстрактные классы являются неполными классами, и для того, чтобы класс был абстрактным, как следует из названия, у них должен быть неполный метод, который должен быть завершен подклассом, наследующим суперкласс, если они не завершат абстрактный метод, они останутся также неполный.
abstract class car {
abstract void gear();
}
class sedan extends car {
public void gear()
{
//complete the method
}
}
также вы не можете создавать объекты абстрактных классов, потому что класс не завершен. Тем не менее, эти абстрактные классы могут иметь статические методы, аргументы, конкретные методы, НО для того, чтобы они были абстрактными, им нужен один абстрактный метод. Таким образом, один базовый абстрактный суперкласс реализован в других подклассах, где они завершают его
Глядя на объявление метода, мы можем оценить, что именно делает метод, что он собирается вернуть. Но мы не знаем, как именно будет реализован абстрактный метод.
Используя абстрактные классы или интерфейсы, мы можем добиться абстракции в Java.
Как все мы знаем, что абстрактные классы, интерфейсы содержат абстрактные методы
Мы можем только оценить, как они будут работать. Мы узнаем, как они работают, когда мы предоставили реализацию метода в классах, которые реализуют соответствующий абстрактный класс или интерфейс.
HENCE, abstract в основном помогает полиморфизму.