Java

Абстрактний клас Java

Абстрактний клас Java
Концепція абстракції полягає у висвітленні завдання об’єкта замість виділення, “як об’єкт виконує завдання”. Цей тип концепції можна реалізувати, використовуючи два способи в Java. Це абстрактний клас та інтерфейс. Абстрактний клас містить ключове слово реферат. Цей клас не можна ініціювати, як інші звичайні класи, але підклас можна отримати шляхом успадкування абстрактного класу. До функцій абстрактного класу можна отримати доступ, створивши об'єкт підкласу. Абстрактний клас також може містити конструктор, до якого можна отримати доступ, створивши об'єкт класу підкласу. Як ви можете використовувати абстрактний клас на Java, показано в цьому посібнику.

Синтаксис:

абстрактний клас className
імена змінних;
абстрактний метод1 ();
відкритий метод2 ()
твердження 1 ... N

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

Приклад-1: Абстрактний клас із загальнодоступним методом

Наступний приклад показує, як можна оголосити абстрактний клас за допомогою відкритого методу та спосіб використання абстрактного класу, створивши підклас. Тут абстрактний клас містить загальнодоступний метод з іменем деталі () що реалізовано всередині абстрактного класу. Об'єкт підкласу створений для доступу до відкритого методу абстрактного класу.

// Визначення абстрактного класу загальнодоступним методом
анотація навчальної книги
деталі публічної недійсності ()
Система.назовні.println ("Назва книги: вивчіть PHP за 15 хвилин");
Система.назовні.println ("Ім'я автора: Джейк Райт");
Система.назовні.println ("Ціна зі знижкою: $ 35");


// Визначимо підклас
клас php продовжує книгу

// Основний клас
клас реферат1
public static void main (String [] args)
php bk = новий php ();
bk.деталі ();

Вихід:

Наступний результат з’явиться після запуску коду. Ось, деталі () викликається метод абстрактного класу, а текст друкується з методу.

Приклад-2: Абстрактний клас з абстрактним методом та публічним методом

Наступний приклад показує, як абстрактний клас можна оголосити зі змінними, абстрактним методом та відкритим методом. Оператори методу public визначені всередині абстрактного класу, але тіло абстрактного методу порожнє, що реалізовано всередині підкласу абстрактного класу. Тут оголошено два підкласи шляхом розширення абстрактного класу. Підклас ім площа буде розраховувати та друкувати площу квадрата на основі значення п змінна. Підклас ім прямокутник буде обчислювати та друкувати площу прямокутника на основі значення h і w змінні. Публічний метод, readData () викликається параметром з іменем типу щоб визначити, яка змінна (и) абстрактного класу буде ініціалізована. Значення типу змінна буде 1 для ініціалізації значення п і 2 для ініціалізації значення h і w.

// Визначимо абстрактний клас абстрактним методом та відкритим методом
область абстрактних класів
public int n, h, w;
абстрактний порожній результат ();
public void readData (тип int)
якщо (тип == 1)
n = 10;

ще
h = 20;
w = 30;



// Визначимо квадратний підклас
клас квадрат розширює площу
public void result ()
// Обчислимо площу квадрата
int areaVal = n * n;
Система.назовні.println ("Площа квадрата" + areaVal);


// Визначимо підклас прямокутника
клас прямокутник розширює область
public void result ()
// Обчислимо площу прямокутника
int areaVal = h * w;
Система.назовні.println ("Площа прямокутника дорівнює" + areaVal);


// Основний клас
клас реферат2
public static void main (String [] args)
// Створення об'єкта класу квадрат
квадрат sq = новий квадрат ();
кв.readData (1);
кв.результат ();
// Створення об'єкта класу прямокутник
прямокутник rq = новий прямокутник ();
rq.readData (2);
rq.результат ();

Вихід:

Наступний результат з’явиться після запуску коду. Вихідні дані показують площу квадрата, де значення п є 10 і площа прямокутника, де значення h є 20, і значення w є 30.

Приклад-3: Абстрактний клас із конструктором

Наступний приклад показує, як конструктор може бути оголошений і використаний в абстрактному класі. Конструктор абстрактного класу ініціалізує значення a і b. Абстрактний метод, maxval () реалізовано в іменному підкласі findMax. супер () метод використовується в конструкторі підкласу для виклику конструктора абстрактного класу. Абстрактний метод maxval () з'ясує максимальне значення двох чисел, які будуть надані параметрам конструктора підкласу під час створення об'єкта.

// Визначити абстрактний клас за допомогою конструктора
абстрактні номери класів
// оголошуємо змінні
захищений кінцевий int a, b;
// конструктор абстрактних класів
загальнодоступні номери (int x, int y)
це.a = x;
це.b = y;

// Публічний метод
публічна анотація void maxval ();

// Визначимо підклас
клас findMax розширює числа
// Конструктор підкласу
public findMax (int x, int y)
// Виклик конструктора абстрактних класів
супер (х, у);

// Реалізуємо абстрактний метод
public void maxval ()
якщо (a> b)
Система.назовні.println (a + "більше, ніж" + b);

ще
Система.назовні.println (b + "більше, ніж" + a);



// Основний клас
клас реферат3
public static void main (String [] args)
// Створення об'єкта підкласу
findMax fmax = новий findMax (34,89);
// Знайти максимум
fmax.maxval ();

Вихід:

Наступний результат з’явиться після запуску сценарію. Ось, 34 і 89 задаються як значення параметрів конструктора. Ці значення порівнюються в абстрактному методі, який реалізований у підкласі, і друкується наступне повідомлення.

Висновок:

Абстрактний клас використовується, щоб зробити програму більш організованою та зрозумілою. Кілька пов'язаних класів можна згрупувати, використовуючи абстрактні класи. Поняття та реалізація абстрактного класу з різними частинами пояснюються в цьому посібнику на простих прикладах. Сподіваюся, читачі зможуть зрозуміти використання абстрактного класу та правильно застосувати його у своєму коді після прочитання цього посібника.

Битва за Веснот 1.13.6 Розробка випущена
Битва за Веснот 1.13.6, випущений минулого місяця, є шостим випуском розробки в 1.13.x, і це забезпечує низку вдосконалень, особливо до інтерфейсу кор...
Як встановити League of Legends на Ubuntu 14.04
Якщо ви шанувальник League of Legends, то це можливість для вас тестувати League of Legends. Зверніть увагу, що LOL підтримується на PlayOnLinux, якщо...
Встановіть останню стратегічну гру OpenRA на Ubuntu Linux
OpenRA - це ігровий движок Libre / Free Real Time Strategy, який відтворює ранні ігри Вествуда, такі як класичний Command & Conquer: Red Alert. Пошире...