Путь разработчика    

Разница между абстрактным классом и интерфейсом в Java

Рекомендуем: Типы датчиков износа тормозных колодок и принцип их работы
eda2480d

Термин «Абстракция» означает скрытие внутренней реализации функции и только отображение функциональности для пользователей. Это означает, что абстрактный класс является классом, который частично реализуется программистом. Он может содержать один или несколько абстрактных методов. Он не может быть создан, он может использоваться только как суперкласс по своим подклассам. Эти методы - это просто определения функций, которые говорят разработчику, что метод должен быть реализован в дочернем классе. Абстрактные классы используются для создания шаблона для его подклассов, он может захватывать общие характеристики подклассов.

Интерфейс

Интерфейс - это тип, который содержит только сигнатуры методов, делегатов или событий и не имеет реализации. Реализация методов выполняется классом, который реализует интерфейс. Это полностью абстрактный класс; ни один из его методов не реализован, и вместо того, чтобы подклассифицировать класс от него, говорят, что он реализует этот интерфейс. Поэтому, если класс реализует интерфейс, он говорит внешнему миру, что он обеспечивает конкретное поведение.

Ключевыми техническими отличиями между абстрактным классом и интерфейсом являются:

  1. Абстрактный класс может иметь абстрактные и не абстрактные методы, тогда как интерфейс могут иметь только абстрактные методы. Начиная с Java 8, он может также иметь стандартные и статические методы.
  2. Абстрактные классы могут иметь константы, члены, заглушки методов (методы без тела) и определенные методы, тогда как интерфейсы могут иметь только заглушки констант и методов.
  3. Абстрактные классы могут иметь конструкторы, но интерфейсы могут иметь конструкторы.
  4. Абстрактные методы классов могут иметь модификаторы доступа с любой видимостью, но методы интерфейса неявно публичны и абстрактны .
  5. Абстрактные классы могут иметь основной метод, поэтому мы можем запускать его, тогда как интерфейс не имеет основного метода, поэтому мы не можем его запускать.
  6. Абстрактный класс может расширять один другой класс и может реализовывать один или несколько интерфейсов, но интерфейс может распространяться только на один или несколько интерфейсов.
  7. Детский класс может определять абстрактные методы с тем же или менее ограничительная видимость, тогда как класс, реализующий интерфейс, должен определять методы с одинаковой видимостью (public).
  8. По сравнению с Interf ace, абстрактный класс быстрее, чем интерфейс, потому что интерфейс несколько медленнее, так как требуется некоторое время, чтобы найти реализованный метод в классе.
  9. В абстрактном ключе ключевое слово "abstract" является обязательным для объявления метода как абстрактное, тогда как в ключе ключевое слово интерфейса «абстрактный» необязательно объявлять метод как абстрактный

Источник: http://net-informations.com/Java/cJava/abstract.htm



Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:


Что такое ключевое слово instanceof в Java?

Java instanceof - это ключевое слово. Это двоичный оператор, используемый для проверки, является ли объект (экземпляр) подтипом данного типа. Он возвращает...

21 06 2021 17:20:38

Использование именованные и необязательные параметры в C#

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

20 06 2021 9:27:39

Что такое отказобезопасные и отказоустойчивые итераторы в Java

Неуправляемые итераторы Fail-Fast iterators, возвращенные большинством типов коллекций, не переносят каких-либо структурных изменений в коллекции, итерации...

19 06 2021 21:14:51

Сделайте сложный график, показывающий сложный интерес к C#

Пример Показывать сложный интерес на C# показывает график, показывающий вклад, сложный процент и общий баланс с течением времени для ежемесячной инвестицио...

18 06 2021 20:10:25

Как сделать две формы открытыми друг друга в C#

Это своего рода упражнение новичка в создании двух форм, работающих друг с другом, хотя оно поднимает некоторые проблемы, не связанные с новичком. Начинающ...

17 06 2021 20:16:41

Класс Java StringBuilder

Java StringBuilder идентичен StringBuffer, за исключением одного важного различия, которое не синхронизировано, это означает, что он не является потокобезо...

16 06 2021 1:19:44

Hello World! Первая программа на Java

Наиболее распространенным примером первой Java-программы является знаменитый Hello World! программа. Прежде чем перейти к первой программе Java, вы должны...

15 06 2021 5:43:18

Программирование на С++ глазами хакера, 2-е издание (Михаил Фленов)

Рассмотрены нестандартные приемы программирования, а также примеры использования недокументированных функций и возможностей языка C++ при разработке шуточн...

14 06 2021 0:52:40

Каковы различия между списком и словарем в Python

Список и словарь представляют собой принципиально разные структуры данных. Список может хранить последовательность объектов в определенном порядке, чтобы в...

13 06 2021 5:43:34

Список местоположений специальных папок в C#

Перечисление System.Environment класса SpecialFolders перечисляет специальные папки, такие как System, Cookies, Desktop и т. д. Метод класса GetFolderPath...

12 06 2021 20:32:46

Как создать каталог и промежуточные каталоги в C#

Метод System.IO.Directory класса CreateDirectory класса создает каталог. Если путь каталога содержит отсутствующие промежуточные каталоги, он также создает...

11 06 2021 16:48:22

Алгоритмы и программы на Turbo Pascal. Учебный курс (Ю. Федоренко)

Книга " Алгоритмы и программы на Turbo Pascal. Учебный курс" предназначена для самостоятельного изучения одного из самых популярных языков программирования....

10 06 2021 9:45:53

Разница между инструментами Runnable и extends Thread в Java

Java допускает только одно наследование, а это означает, что если вы наследуете Thread, вы не сможете наследовать ни один другой класс. Внедрение интерфейс...

09 06 2021 22:31:16

Почему Java не является чисто объектно-ориентированным языком?

Язык оцифрованного программирования (OOP) использует метод объектно-ориентированного программирования, который связывает связанные данные и функции с объек...

08 06 2021 10:46:10

Что такое NullPointerException в Java

NullPointerException - исключение RuntimeException. Исключения в Runtime являются критическими и не могут быть пойманы во время компиляции. Они приводят к...

07 06 2021 6:35:19

Преобразование типа Python

Python имеет пять стандартных типов данных. Иногда необходимо преобразовывать значения из одного типа в другой. Python определяет функции преобразования ти...

06 06 2021 1:29:24

Преобразование String в Float в C#

В этой статье мы напишем программу C# для преобразования String в Float с использованием метода float.Parse () Вывод: 9,819   Источник: http://www.csh...

05 06 2021 6:31:12

Разработка устройств на микроконтроллерах AVR: шагаем от чайника до профи (А. Белов)

Книга « Разработка устройств на микроконтроллерах AVR: шагаем от чайника до профи» Белова А. В. поможет Вам всего за шесть несложных шагов преодолеть путь от...

04 06 2021 4:43:30

Разница между статическими и нестатистическими методами Java

Статический метод принадлежит классу, а нестатический метод принадлежит объекту класса. Статические методы полезны, если у вас есть только один экземпляр,...

03 06 2021 13:27:18

Треугольная матрица в C#

В этой статье мы напишем программу C#, чтобы проиллюстрировать нижнюю треугольную матрицу. Что такое нижняя треугольная матрица? Квадратная матрица называе...

02 06 2021 10:50:19

Разработка веб-приложений с помощью PHP и MySQL (Люк Веллинг, Лора Томсон)

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

01 06 2021 8:14:25

В чем разница между классом и прототипным наследованием?

Класс похож на план. Классический подход к созданию объекта состоит в том, чтобы определить структуру объекта, используя объявление CLASS и создать экземпл...

31 05 2021 7:17:46

Используйте SQL-запросы для отображения данных master-detail в C#

В этом примере SQL-запросы запрашивают данные master-detail только тогда, когда это необходимо. В течение довольно долгого времени .NET-ish способ манипули...

30 05 2021 8:13:13

Отображение всплывающих подсказок для элементов ListView в C#

В этом примере показано, как отображать различные подсказки для элементов в ListBox. Когда вы перемещаете мышь над элементом в ListBox, программа используе...

29 05 2021 22:43:48

Рисуем гладкий текст в GraphicsPath в C#

Вы можете установить свойство TextRenderingHint объекта Graphics для AntiAliasGridFit, чтобы нарисовать гладкий текст. Однако, если вы поместите текст в об...

28 05 2021 22:23:21

Отображать образцы форматов для разных локалей в C#

При запуске программы выполняется следующий код. Этот код сначала создает значения float, decimal и DateTime. Затем он перебирает объекты CultureInfo, возв...

27 05 2021 11:54:33

Класс OutPutStreamWriter в Java

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

26 05 2021 23:23:25

Новая большая книга CSS (Дэвид Макфарланд)

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

25 05 2021 5:59:19

Добавление вкладок в TabControl во время выполнения в C#

Сообщение Сделать улучшенный собственный вкладчик TabControl в В C# показано, как создать созданный владельцем TabControl, который позволяет пользователю у...

24 05 2021 11:39:16

Нарисуйте цветное колесо в C#

В программе используется PathGradientBrush, чтобы заполнить цветовое колесо цветовыми образцами. Рисование колеса в основном автоматическое, но прикладывае...

23 05 2021 4:52:37

Как создать файл в Java

Класс File имеет три конструктора и ряд полезных методов. Ниже перечислены три конструктора: Для создания файла используйте метод File.createNewFile(). Это...

22 05 2021 2:48:17

JavaScript. Подробное руководство (Дэвид Флэнаган)

Пятое издание бестселлера "Javascript. Подробное руководство" полностью обновлено. Рассматриваются взаимодействие с протоколом HTTP и применение технологии...

21 05 2021 18:49:44

Языки программирования высокого уровня: высокоуровневые языки

Какие существуют языки программирования высокого уровня? Какие из них самые современные? Программирование незаметно стало одной из важнейших сфер деятельности нашего времени....

20 05 2021 9:33:50

Как пройти DOM

DOM является основой почти всего, что работает JavaScript с браузером и веб-документами. Это интерфейс, который позволяет нам взаимодействовать с контентом...

19 05 2021 0:23:55

Самоучитель C++ (Г. Шилдт)

Необходимость в переработке и дополнении предыдущего издания книги вызвана в первую очередь выходом в свет долгожданного для программистов всего мира едино...

18 05 2021 22:39:51

Что такое поток Daemon в Java

Демон-поток - это поток поставщика услуг, который предоставляет услуги пользовательскому потоку. Демона, который работает в фоновом режиме и в основном соз...

17 05 2021 17:27:56

Android. Разработка приложений для чайников (Донн Фелкер, Джошуа Доббс)

В наше время миллиарды пользователей носят в кармане портативные устройства, и в половине из них установлена операционная система Android. Даже если вы ник...

16 05 2021 6:13:39

Что такое Externalizable в Java?

Externalizable - это интерфейс, который позволяет вам определять пользовательские правила и собственный механизм для сериализации. Прежде чем понимать инте...

15 05 2021 13:54:55

Закрепите сегмент линии на многоугольник в C#

В этом примере найдены фрагменты сегмента линии, которые лежат внутри и снаружи многоугольника. Он рисует части сегмента, которые лежат вне многоугольника...

14 05 2021 23:54:35

Сериализация и десериализация объектов в C#

Сериализация - это процесс преобразования объекта в последовательный поток-подобный формат. Часто это означает преобразование его в XML-данные для хранения...

13 05 2021 20:24:41

Циклы в Java Примеры и синтаксис

Существует много ситуаций, когда вы хотите выполнить блок утверждений несколько раз в ваших приложениях. Петли могут выполнять блок кода несколько раз. Цик...

12 05 2021 2:13:46

Выполнение бинарного усиления контраста на изображении в C#

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

11 05 2021 0:47:14

Разница между локальной переменной Java, переменной экземпляра и переменной класса?

Локальная переменная в Java обычно используется в методе, конструкторе или блоке и имеет только локальную область. Таким образом, вы можете использовать пе...

10 05 2021 6:55:31

Используйте объект ImageAttributes для применения общих цветовых тонов к изображению в C#

В этом примере используются методы, аналогичные тем, которые описаны в post Используйте объект ImageAttributes для преобразования изображения в оттенки кра...

09 05 2021 7:45:11

Рекурсивно выполнять уменьшение эффекта «красных глаз» на изображении в C#

Пример Выполнение эффекта красных глаз на picture в C# исследует пиксели в выбранном прямоугольнике и преобразует любой пиксель, который является более кра...

08 05 2021 10:32:23

Сделайте значки приложений приложений Windows Forms на соответствующих размерах в C#

Установка значка формы проста. Просто выберите форму в редакторе форм и установите ее свойство Icon. Windows использует этот значок разными способами. Напр...

07 05 2021 4:29:19

Методы расширения для генерации случайных чисел двойной дочности в C#

В этом примере добавляются методы расширения класса Random для генерации двойных значений в указанном диапазоне. Класс Random предоставляет методы для гене...

06 05 2021 0:16:30

Сравнение производительности типов float, double и decimal в C#

Математический сопроцессор компьютера обычно дает лучшую производительность с определенным типом данных. Чтобы узнать, какая из них лучше всего работает в...

05 05 2021 11:47:31

Как настроить объект на null, помогая сборке мусора?

Не обязательно. Объект становится пригодным для сбора мусора, когда нет живых потоков, которые содержат ссылку на объект. Явное обнуление - это просто прак...

04 05 2021 2:46:47

Язык программирования C# (Хейлсберг А. 2012)

Перед вами — четвертое издание главной книги по языку C#, написанной легендой программирования — Андерсом Хейлсбергом, архитектором C#, Delphi и Turbo Pasc...

03 05 2021 13:22:33

Еще:
Программирование -1 :: Программирование -2 :: Программирование -3 :: Программирование -4 :: Программирование -5 ::

И сказал Великий Программист:
«После трёх дней без программирования жизнь теряет смысл»