Преглед насљеђивања у Јави
За разлику од других програмских језика као што је Ц, Јава нуди механизам помоћу којег чланови података и методе једне класе наслеђују другу класу. Овај процес је у Јави познат под називом Насљеђивање. Да би се наслиједило од класе, користи се кључна ријеч 'ектендс'. Наслеђивање у Јави дозвољава поновну употребу кода тако да класа треба да напише само јединствене карактеристике, а остатак кода се може проширити из друге класе. Класа која наслеђује од друге класе позната је као подразред или подређена класа, а класа која се наслеђује позната је као надређена класа или преткласа. Синтакса, типови и примена наслеђивања биће размотрени у наредним одељцима.
Врсте наследства на Јави
Наслеђивање означава однос ИС-А који је и иначе познат као однос родитељ-дете. Родитељ и дете су већ наведени у уводном делу.
Пре него што пређемо на типове наследства у јави, прво да видимо синтаксу наследства.
Синтакса:
class apple extends fruit
(
//methods and fields
)
Овде је јабука подразред, а воће родитељска класа. То значи да јабука има одређена јединствена својства, а има и својства воћа.
У Јави постоје 4 различите врсте наследства.
- Једно наслеђивање
- Наслеђивање на више нивоа
- Хијерархијско наслеђивање
- Вишеструко наслеђивање (уз помоћ интерфејса)
Сада ћемо да видимо сваки од њих детаљно.
1. Појединачно наслеђивање
Класа која се протеже само на једну класу. У следећем примеру, јабука класе проширује воће класе.
тј. Фруит је суперкласа, а Аппле је поткласа која проширује својства и понашање Фруит класе.
Следи демонстрација јединственог наследства на Јави.
Шифра:
//Java program to demonstrate Single Inheritance
//parent class
class fruit (
public void taste()
(
System.out.println("Fruits are sweet");
)
)
//child class of fruit
class apple extends fruit
(
public void shape()
(
System.out.println("Apple is round");
)
)
public class InheritanceExample
(
public static void main(String() args) (
apple fr = new apple(); //object of child class
fr.taste(); //call method of parent class
fr.shape(); //call method of child class
)
)
Излаз:
2. Наслеђивање на више нивоа
У овом типу наследства класа ће се проширити из друге класе, а изведена класа делује као основна класа за неку другу класу.
На пример, на слици је класа четвороточкаша родитељска класа, а аутомобил је изведена класа четвороточкаша. У исто време, класа аутомобила може бити основна класа за класу Марути.
Шифра:
//Java program to demonstrate Multiple Inheritance
//parent class
class fourwheeler (
public void wheels()
(
System.out.println("I have 4 wheels");
)
)
//child class of fourwheeler and parent of maruti
class car extends fourwheeler
(
public void type()
(
System.out.println("I'm a car");
)
)
//child class of car class
class maruti extends car
(
public void comp()
(
System.out.println("I'm maruti");
)
)
public class InheritanceExample
(
public static void main(String() args) (
maruti fr = new maruti(); //object of child class
fr.wheels();
fr.type();
fr.comp();
)
)
Излаз:
3. Хијерархијско наслеђивање
У хијерархијском наслеђивању, основна класа има више од једне дечије класе, што значи да својства класе стјечу различите класе.
На пример, возило класе има подкласе аутомобила, бицикала, скутера.
Шифра:
//Java program to demonstrate Hierarchical Inheritance
//parent class
class vehicle (
public void wheels()
(
System.out.println("I have wheels");
)
)
//first child class of vehicle class
class bike extends vehicle
(
public void countwl()
(
System.out.println("I am a bike and has 2 wheels");
)
)
//second child class of vehicle class
class car extends vehicle
(
public void countwlc()
(
System.out.println("I am a car and has 4 wheels");
)
)
//third child class of vehicle class
class scooter extends vehicle
(
public void countwls()
(
System.out.println("I am a scooter and has 2 wheels");
)
)
public class InheritanceExample
(
public static void main(String() args) (
scooter sc = new scooter(); //object of scooter class
sc.wheels();
sc.countwls();
car c = new car(); //object of car class
c.wheels();
c.countwlc();
bike b= new bike();//object of bike class
b.wheels();
b.countwl();
)
)
Излаз:
4. Вишеструко наслеђивање
Вишеструко наслеђивање у јави је врста наследства у којој класа има више од једне родитељске класе.
На пример, класа Ц стиче својства и класе А и класе Б.
Али у Јави се вишеструко насљеђивање може постићи само употребом интерфејса.
Претпоставимо да се више наслеђивања примењује као и друге врсте наследства, грешка у времену превођења може да се догоди на следећи начин.
Шифра:
//Java program to demonstrate multiple Inheritance
//parent class
class A
(
public void hh()
(
System.out.println("A is working");
)
)
class B
(
public void hh()
(
System.out.println("B is working");
)
)
class C extends A, B
(
//code for class c
)
public class InheritanceExample
(
public static void main(String() args) (
C sc = new C(); //object of C class
C.hh();
)
)
Овде се излаз неће приказати јер садржи грешку у времену компилације.
Важност наслеђивања у Јави
- Поновна употреба кода: Наслеђивање помаже у смањењу преписивања кода. тј. Код се може поново користити у другим класама, а дечија класа мора само да напише своја јединствена својства. То смањује потрошњу времена и сложеност кода.
- За прегласавање метода: Метода која је већ присутна у родитељској класи декларира дечија класа, тада је позната и као прегласавање метода.
Синтакса:
final class A
(
. . .
)
Class B extends A
(
. . .
)
У том случају ће се створити грешка која каже „Не могу се наследити од коначног А“.
Закључак
Насљеђивање у Јави је својство помоћу којег друга класа стјече својства и понашање класе како би се осигурала поновна употреба кода. У Јави постоје различите врсте наследства као што су Једно наслеђивање, Наслеђивање на више нивоа, Хијерархијско наследство и Вишеструко наслеђивање на Јави. У овом документу је обрађено неколико важних аспеката наслеђивања.
Препоручени чланци
Ово је водич за наследство на Јави. Овдје разговарамо о важности и различитим врстама насљеђивања у Јави, заједно са синтаксом, примјерима и имплементацијом кода. Такође можете погледати следеће чланке да бисте сазнали више -
- ЈСцроллПане на Јави
- Сесије у ПХП-у
- Сортирање на Јави
- Шта је Јава Гарбаге Цоллецтор?
- Јава Деплоимент Тоолс
- Превладавање у Јави
- Наслеђивање у ПХП-у