Синтаксис:
абстрактен клас classNameимена на променливи;
абстрактен метод1 ();
публичен метод2 ()
изявления 1 ... N
Абстрактният клас може да съдържа атрибут или променливи, абстрактен метод и нормален метод или някой от тях. Но подкласът на абстрактния клас може да реализира само абстрактния метод на абстрактния клас.
Пример-1: Абстрактен клас с публичен метод
Следващият пример показва как можете да декларирате абстрактен клас с публичен метод и начина за използване на абстрактен клас чрез създаване на подклас. Тук абстрактният клас съдържа публичен метод с име подробности () който е реализиран в абстрактния клас. Обектът на подкласа е създаден за достъп до публичния метод на абстрактния клас.
// Дефиниране на абстрактния клас с публичен методабстрактна учебна книга
подробности за публична невалидност ()
Система.навън.println ("Име на книгата: Научете PHP за 15 минути");
Система.навън.println ("Име на автора: Джейк Райт");
Система.навън.println ("Цена с отстъпка: $ 35");
// Дефиниране на подклас
class php разширява book
// Основен клас
клас абстракт1
публична статична void main (String [] args)
php bk = нов php ();
bk.подробности ();
Изход:
След стартиране на кода ще се появи следният изход. Ето, подробности () се извиква метод на абстрактния клас и текстът се отпечатва от метода.
Пример-2: Абстрактен клас с абстрактния метод и публичния метод
Следващият пример показва как абстрактният клас може да бъде деклариран с променливи, абстрактен метод и публичен метод. Операторите на публичния метод са дефинирани вътре в абстрактния клас, но тялото на абстрактния метод е празно, което е внедрено вътре в подкласа на абстрактния клас. Тук се декларират два подкласа чрез разширяване на абстрактния клас. Името на подкласа квадрат ще изчисли и отпечата площта на квадрат въз основа на стойността на н променлива. Името на подкласа правоъгълник ще изчисли и отпечата площта на правоъгълника въз основа на стойността на з и w променливи. Публичният метод, readData () се извиква от параметър с име Тип за да идентифицира коя променлива (и) на абстрактния клас ще бъде инициализирана. Стойността на Тип променливата ще бъде 1 за инициализиране на стойността на н и 2 за инициализиране на стойността на з и w.
// Дефиниране на абстрактен клас с абстрактен метод и публичен методабстрактна област на класа
публичен int n, h, w;
абстрактен празен резултат ();
public void readData (int type)
ако (тип == 1)
п = 10;
друго
h = 20;
w = 30;
// Определяне на квадратен подклас
клас квадрат разширява площ
публичен невалиден резултат ()
// Изчисляване на площта на квадрата
int areaVal = n * n;
Система.навън.println ("Площта на квадрата е" + areaVal);
// Дефиниране на подклас на правоъгълник
клас правоъгълник разширява площ
публичен невалиден резултат ()
// Изчисляване на площта на правоъгълника
int areaVal = h * w;
Система.навън.println ("Площта на правоъгълника е" + areaVal);
// Основен клас
class abstract2
публична статична void main (String [] args)
// Създаване на обект от квадратния клас
квадрат sq = нов квадрат ();
кв.readData (1);
кв.резултат ();
// Създаване на обект от правоъгълния клас
правоъгълник rq = нов правоъгълник ();
rq.readData (2);
rq.резултат ();
Изход:
След стартиране на кода ще се появи следният изход. Резултатът показва площта на квадрат, където стойността на н е 10 и площта на правоъгълник, където стойността на з е 20, и стойността на w е 30.
Пример-3: Абстрактен клас с конструктора
Следващият пример показва как конструкторът може да бъде деклариран и използван в абстрактния клас. Конструкторът на абстрактния клас ще инициализира стойностите на а и б. Абстрактният метод, maxval () е реализиран в подкласа с име findMax. супер () метод се използва в конструктора на подкласа за извикване на конструктора на абстрактен клас. Абстрактният метод maxval () ще открие максималната стойност на две числа, които ще бъдат дадени на параметрите на конструктора на подкласа по време на създаването на обект.
// Дефиниране на абстрактен клас с конструкторабстрактни номера на класа
// декларираме променливи
защитен краен int a, b;
// конструктор на абстрактен клас
публични номера (int x, int y)
това.a = x;
това.b = y;
// Публичен метод
публично резюме void maxval ();
// Дефиниране на подклас
class findMax разширява числата
// Конструктор на подклас
public findMax (int x, int y)
// Извикване на абстрактния конструктор на клас
супер (x, y);
// Прилагане на абстрактен метод
public void maxval ()
ако (a> b)
Система.навън.println (a + "е по-голямо от" + b);
друго
Система.навън.println (b + "е по-голямо от" + a);
// Основен клас
class abstract3
публична статична void main (String [] args)
// Създаване на обект на подкласа
findMax fmax = нов findMax (34,89);
// Намерете максимума
fmax.maxval ();
Изход:
След стартиране на скрипта ще се появи следният изход. Тук, 34 и 89 са дадени като стойности на параметрите на конструктора. Тези стойности се сравняват в абстрактния метод, който е реализиран в подкласа и се отпечатва следното съобщение.
Заключение:
Абстрактен клас се използва, за да направи програмата по-организирана и разбираема. Няколко свързани класове могат да бъдат групирани чрез използване на абстрактни класове. Концепцията и изпълнението на абстрактния клас с различни части са обяснени в този урок с помощта на прости примери. Надявам се читателите да могат да разберат използването на абстрактния клас и да го приложат правилно в кода си, след като прочетат този урок.