Məsələn biz CdPlayer, Radio və TV adlı claslar yaradırıq.Bunların hərəsinin fərqli funksiyalarıda vardır.
Məsələn CdPlayerin discexit, Radyonun frekans, TV-nin də channel düyməsi vardır
Bunları yaratdığımız classlarda yazaq:
public class CdPlayer {
public void discexit(){
System.out.println("CD Exit");
}
}
- - - - - - - - - - - - - - - - - - - - - -
public class Radio {
public void frekans(){
System.out.println("Radio frenkans");
}
}
- - - - - - - - - - - - - - - - - - - - - -
public class TV {
public void channel(){
System.out.println("TV Channel");
}
public void channel(){
System.out.println("TV Channel");
}
}
Həmçinin, bunların hamısının start, stop, volume kimi ortaq özəllikləri düymələri də var.Ona görə biz bu funksiyaları bu 3 classın içində üç dəfə yazmaqdansa daha rahat yola əl atıb Pult adında bir class yaradır və içində bu metodları bir araya toplayır və yazırıq.
public class Pult{
public void start(){
System.out.println("Start");
}
public void stop(){
System.out.println("Stop");
}
public void volume(){
System.out.println("Volume");
}
}
Pult classı SuperClass adlanır.Digər Radio, TV və Cd classları isə subClasslar adlanır.Superlə Sub arasında əlaqə qurmaq üçün "extends" istifadə edilir.Yəni Subclaslar Superə extends edilir.Məs:
public class CdPlayer extends Pult {
public void discexit(){
System.out.println("CD Exit");
}
}
- - - - - - - - - - - - - - - - - - - - - -
public class Radio extends Pult {
public void frekans(){
System.out.println("Radio frenkans");
}
}
- - - - - - - - - - - - - - - - - - - - - -
public class TV extends Pult {
public void channel(){
System.out.println("TV Channel");
}
}
Sonra Main metodu olacaq clasımızda extends etdiyimiz classların obyektini yaradır SuperClassdakı ortaq start stop volume adlı metodlarımızı asanlıqla çağırırq.Məsələn:
public class InheritanceNümunəsi {
public static void main(String[] args) {
TV t = new TV();
t.start;
t.stop;
t.volume;
Radio rd = new Radio();
rd.start;
rd.stop;
rd.volume;
CdPlayer cd = new CdPlayer();
cd .start;
cd .stop;
cd.volume;
}
}
Əgər Super(Pult) classındakı metodlardan biri digər classda fərqli olarsa yəni məs: CDPlayerin start metodunda SuperClassdaki kimi System.out.println("Start"); deyildə System.out.println("LG CD Player Start"); olmasını istərsək, bu zaman Override qavramından istifadə etməli oluruq.Override eyni adlı lakin fərqli metodları fərqləndirmək üçün istifadə olunur.Yazacağıq ki,
public class CdPlayer extends Pult {
@Override
public void start(){
super.start();
System.out.println(" LG CD Player Start ");
)
public void discexit(){
System.out.println("CD Exit");
}
}
Bu qədər..Uğurlar..!!