Разлика между абстрактен клас и наследяване

Съдържание:

Разлика между абстрактен клас и наследяване
Разлика между абстрактен клас и наследяване

Видео: Разлика между абстрактен клас и наследяване

Видео: Разлика между абстрактен клас и наследяване
Видео: Java Абстрактный класс VS Интерфейс 2024, Юли
Anonim

Абстрактен клас срещу наследяване

Абстрактният клас и Наследяването са две важни обектно-ориентирани концепции, открити в много обектно-ориентирани езици за програмиране като Java. Абстрактният клас може да се разглежда като абстрактна версия на обикновен (конкретен) клас, докато наследяването позволява на нови класове да разширяват други класове. Абстрактният клас е клас, който не може да бъде инициализиран, но може да бъде разширен. Така че абстрактните класове са смислени само ако езикът за програмиране поддържа наследяване. В Java абстрактните класове се декларират с помощта на ключовата дума Abstract, докато ключовата дума Extends се използва за наследяване от (супер) клас.

Какво е абстрактен клас?

Обикновено абстрактните класове, известни също като абстрактни базови класове (ABC), не могат да бъдат създадени (не може да бъде създаден екземпляр на този клас). Така че абстрактните класове са смислени само ако езикът за програмиране поддържа наследяване (способност за създаване на подкласове от разширяване на клас). Абстрактните класове обикновено представляват абстрактна концепция или обект с частична или никаква реализация. Следователно абстрактните класове действат като родителски класове, от които се извличат дъщерни класове, така че дъщерният клас ще споделя непълните функции на родителския клас и може да се добави функционалност, за да ги завърши.

Абстрактните класове могат да съдържат абстрактни методи. Подкласовете, разширяващи абстрактен клас, могат да имплементират тези (наследени) абстрактни методи. Ако дъщерният клас имплементира всички подобни абстрактни методи, той е конкретен клас. Но ако не стане, дъщерният клас също става абстрактен клас. Всичко това означава, че когато програмистът номинира клас като Abstract, той казва, че класът ще бъде непълен и ще има елементи, които трябва да бъдат завършени от наследяващите подкласове. Това е добър начин за създаване на договор между двама програмисти, който опростява задачите при разработването на софтуер. Програмистът, който пише код за наследяване, трябва да следва точно дефинициите на метода (но разбира се може да има собствена реализация).

Какво е наследство?

Наследяването е обектно ориентирана концепция, която позволява на нови класове да разширяват други класове. Ключовата дума Extends се използва за прилагане на концепцията за наследяване в езика за програмиране Java. Наследяването по същество осигурява повторно използване на кода, като позволява разширяване на свойствата и поведението на съществуващ клас от новодефиниран клас. Когато нов подклас (или производен клас) разшири супер клас (или родителски клас), този подклас ще наследи всички атрибути и методи на супер класа. Подкласът може по желание да замени поведението (предоставяне на нова или разширена функционалност на методите), наследено от родителския клас. Обикновено един подклас не може да разшири множество супер класове (напр. в Java). Следователно не можете да използвате extends за множествено наследяване. За да имате множествено наследяване, трябва да използвате интерфейси.

Каква е разликата между абстрактния клас и наследяването?

Абстрактните класове обикновено представляват абстрактна концепция или обект с частична или никаква реализация. Наследяването позволява на нови класове да разширяват други класове. Тъй като абстрактните класове не могат да бъдат създадени, трябва да използвате концепцията за наследяване, за да използвате абстрактните класове. В противен случай абстрактният клас няма никаква полза. Абстрактните класове могат да съдържат абстрактни методи и когато класът е разширен, всички методи (абстрактни и конкретни) се наследяват. Наследеният клас може да имплементира всеки или всички методи. Ако всички абстрактни методи не са внедрени, тогава този клас също става абстрактен клас. Един клас не може да наследява от повече от един абстрактен клас (това не е качество на абстрактните класове само по себе си, а по-скоро ограничение на наследяването).

Свързани публикации:

Image
Image
Image
Image

Разлика между абстрактен клас и конкретен клас

Image
Image
Image
Image

Разлика между виртуално и абстрактно

Image
Image
Image
Image

Разлика между абстрактен клас и интерфейс

Image
Image
Image
Image

Разлика между внедрява и разширява

Image
Image
Image
Image

Разлика между графика и дърво

Filed Under: Програмиране Маркирани с: ABC, абстрактни, абстрактни базови класове, абстрактни класове, абстрактни класове, абстрактна ключова дума, абстрактни методи, конкретен клас, разширява ключова дума, наследство, клас наследяване, наследен клас, Java, множествено наследяване, обектно ориентирани концепции, обикновен клас, супер клас

Образ
Образ

За автора: Indika

Индика, BSc. Eng, MSECE Computer Engineering, PhD. Компютърни науки, е асистент и има научни интереси в областта на биоинформатиката, изчислителната биология и биомедицинската обработка на естествен език.

Коментари

  1. Образ
    Образ

    Джейсън казва

    30 август 2017 г. в 13:25 ч.

    Благодарим ви, че обяснихте разликата. Всичките ми въпроси са решени с това.

    Отговор

  2. Образ
    Образ

    Aus казва

    10 май 2019 г. в 15:04

    най-добрият отговор в мрежата, Учителят не обяснява нищо и няма смисъл, моно тон mf. Ето как обяснявате концепциите.

    Отговор

Оставете отговор Отказ от отговор

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с

Коментар

Име

Имейл

уебсайт

Заявка за статия
Заявка за статия
Заявка за статия
Заявка за статия

Представени публикации

Разлика между симптомите на коронавирус и настинка
Разлика между симптомите на коронавирус и настинка

Разлика между коронавирус и симптоми на настинка

Разлика между коронавирус и SARS
Разлика между коронавирус и SARS

Разлика между коронавирус и SARS

Разлика между коронавирус и грип
Разлика между коронавирус и грип

Разлика между коронавирус и грип

Разлика между Коронавирус и Ковид 19
Разлика между Коронавирус и Ковид 19

Разлика между коронавирус и Covid 19

Може да харесате

Разлика между сибирско хъски и маламут

Разлика между Calculus AB и BC

Препоръчано: