Чем представлена абстракция (принцип ООП) в Java? Если инкапсуляция в Java представлена модификаторами доступа, то чем представлена абстракция?

1 Дек 2019 в 19:54
241 +1
2
Ответы
1

Абстрактный класс в объектно-ориентированном программировании на java — базовый класс, который не предполагает создания экземпляров.

Абстрактные классы реализуют на практике один из принципов ООП — полиморфизм.  

Абстрактный класс может содержать (и не содержать[1]) абстрактные методы и свойства.

Абстрактный метод не реализуется для класса, в котором описан, однако должен быть реализован  для его не абстрактных потомков.

Абстрактные классы представляют собой наиболее общие абстракции, то есть имеющие наибольший объём и наименьшее содержание.

Абстракция для выделения в моделируемом предмете важного для решения конкретной задачи, в конечном счёте — формализуемое в виде класса;

Невозможно создать объекты из абстрактного класса, но возможно создать объекты из класса, который расширяет абстрактный класс.

Абстрактным методом (модификатор abstract) в Java называется метод, для которого заданы параметры и тип возвращаемого значения, но не задано тело.

Абстрактный метод реализуется в классах-наследниках. Для объявления абстрактного класса тспользуется ключевое слово abstract.

Абстракция на java это своего рода обобщение свойств будущих объектов наследников.

Пример абстрактного класса:

public abstract class SphericalHorse {

   // абстрактный метод ржать()

   abstract void neigh();

  

   @Override

   void gallop() { // абстрактный класс может содержать и обычный метод, хотя этого делать не желательно

       System.out.println("Галоп");

   }

}


В классах-наследниках должны буть реализованы все абстрактные методы.

Например:


public class Horse extends SphericalHorse{

   public void neigh(){ //реализация метода абстрактного класса

    System.out.println("И-го-го!");

   }

}

Интерфейсы на java представляют из себя объявления методов, которые должны быть реализованы в классе.То есть, формально, до спецификации java 8 представляют из себя список абстрактных методов. Но начиная с java 8 интерфейсы могут содержать в себе реализации методов по умолчанию.

Пример:

interface Iface{

   void method();

}

22 Дек 2020 в 04:56
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир