Java-da super açar söz


JavaBaxılıb 47

Java'da Super Açar söz a arayış uşaq sinfindən birbaşa ana sinif obyektinə müraciət etmək üçün miras olaraq istifadə etdiyimiz dəyişən. Bu təlimdə java super açar sözünün fərqli istifadəsi barədə ətraflı danışacağıq.

Bilməli olmağınız vacibdir miraspolimorfizm super açar sözü başa düşməmişdən əvvəl

Java-da Super Açar Sözün istifadəsi

  • Ana sinif dəyişəninə daxil olun
  • Ana sinif metodunu tətbiq etmək
  • Arqumentli və arqumentsiz ana sinif konstruktorlarına müraciət etmək.

Java super açar sözPin

Ana sinif dəyişəninə daxil olmaq üçün Java super açar söz

Həm ana, həm də çıxarılan siniflər eyni dəyişən ada sahib olduqda, java super açar sözünü istifadə edə bilərik keçid ana sinif dəyişən.

sintaksis

super.variable_name;

misal

Aşağıdakı nümunədə eyni String dəyişəninə sahibik rol həm ana sinifdə Əməkdaş və uşaq sinfi İnkişaf etdirici. Uşaq sinfinin dəyişən adına daxil olmaq üçün dəyişən adından birbaşa istifadə edə bilərik. Ana sinifin dəyişəninə daxil olmaq üçün java super açar sözü ilə birlikdə istifadə edirik.

class Employee {
  String role = "Software Engineer";
}
public class Developer extends Employee {

  String role = "Developer";
  
  public void displayRole() {
    System.out.println(role);
    System.out.println(super.role);
  }
  public static void main(String[] args) {
    Developer d = new Developer();
    d.displayRole();

  }

}
Developer
Software Engineer

Bir ana sinif metodunu çağırmaq üçün Super Açar Sözdən istifadə

Həm ana, həm də uşaq sinfi eyni metod adına sahib olduqda, ana sinif metoduna daxil olmaq üçün uşaq sinfindəki java super açar sözündən istifadə edirik. Bu konsepsiya, üstəlik bir metod deyilir. Siz müraciət edə bilərsiniz javada polimorfizm bu konsepsiya haqqında daha çox məlumat əldə etmək.

sintaksis

super.method_name();

misal

Aşağıdakı nümunədə eyni metod adına sahibik ekran rolu həm ana sinifdə Əməkdaş və uşaq sinfi İnkişaf etdirici. Əsas metoddan uşaq sinfi obyektini istifadə edərək birbaşa uşaq sinfinin metod adını və ya başqa metod daxilində birbaşa zəng edə bilərik. Ancaq uşaq sinifindən ana sinif metoduna daxil olmaq üçün, yəni super açar sözdən istifadə etməliyik super.displayRole ().

class Employee {
  String role = "Software Engineer";
  
  public void displayRole() {
    System.out.println("Employee Role: " + role);
  }
  
}
public class Developer extends Employee {

  String role = "Developer";
  
  public void displayRole() {
    System.out.println(role);
    super.displayRole();
  }
  public static void main(String[] args) {
    Developer d = new Developer();
    d.displayRole();

  }

}
Developer
Employee Role: Software Engineer

Tutaq ki, uşaq sinfi ana sinfi ləğv etmir üsul, sonra java super açar sözündən istifadə etmədən birbaşa ana metoduna müraciət edə bilərik.

class Employee {
  String role = "Software Engineer";
  
  public void displayRole() {
    System.out.println("Employee Role: " + role);
  }
  
}
public class Developer extends Employee {
  
  public void show() {
    displayRole();
  }
  
  public static void main(String[] args) {
    Developer d = new Developer();
    d.show();

  }

}
Employee Role: Software Engineer

Bir konstruktoru çağırmaq üçün Super Açar Sözdən istifadə

Yeni açar sözdən istifadə edərək uşaq sinfi üçün bir obyekt yaratdığımız zaman çağırır konstruktor uşaq sinifinin. The java tərtibçisi öz növbəsində super açar sözdən istifadə edərək standart olaraq heç bir ana sinif qurucusu (arqument yoxdur) çağırır. Bu şəkildə əvvəlcə ana sinif qurucusunu, daha sonra alt sinif qurucusunu icra edir. Konstruktorun heç bir arqumenti yoxdursa, java super açar sözündən istifadə edərək ana konstruktoru açıq şəkildə çağırmaq məcburiyyət deyil.

sintaksis

super();

Misal: Varsayılan konstruktor

Aşağıdakı nümunədə bir ana sinif qurucusuna sahibik Şekiller () heç bir mübahisəsi yoxdur. Bu vəziyyətdə, sinif üçün bir obyekt yaratdığımızda Meydan, sonra uşaq konstruktor Meydanı () çağırır. JVM daxili olaraq ana sinif qurucusunu çağırır Şekiller () super () istifadə edərək. Əvvəlcə Şekiller konstruktorunu icra etdikdən sonra Meydan konstruktorunu izləməsinin səbəbi budur.

Java super açar sözPin

class Shapes {
  Shapes() {
    System.out.println("This is a shape");
  }
}

public class Square extends Shapes {
  
  Square() {
  System.out.println("This is a square");	
  }

  public static void main(String[] args) {
    Square s = new Square();
    

  }

}
This is a shape
This is a square

Misal: Parametrləşdirilmiş konstruktor

Tutaq ki, ana sinif parametrləri olan bir konstruktora malikdir, onda biz super açar sözdən istifadə edərək onu açıq şəkildə çağırmalıyıq. JVM, parametrləşdirilmiş konstruktorlar üçün gizli bir çağırış etmir. Həmişə qeyd etmək vacibdir ki, super ifadə uşaq konstruktorunda ilk ifadə olmalıdır. Bunu bir nümunə ilə başa düşək.

sintaksis

super(parameter);

misal

Aşağıdakı nümunədə, bir nümunəsini yaratdığımızda kvadrat sinif, Square () qurucusunu çağırır. Burada parametri ötürərək super açar sözdən istifadə edərək ana sinif qurucusu Şekiller (string adı) adlandırırıq. Beləliklə əvvəlcə bu ifadəni yerinə yetirir, bundan sonra Square () qurucusu içərisindəki ifadələri icra edir.

Parametrləşdirilmiş üst sinif konstruktorunu super açar sözdən istifadə edərək açıq şəkildə çağırdığımız üçün JVM, standart ana konstruktor üçün başqa bir gizli çağırış etmir. Buna görə Shapes () konstruktorunu icra etməyib.

class Shapes {
  Shapes() {
    System.out.println("This is a shape");
  }
  
  Shapes(String name) {
    System.out.println("Shape name is: " + name);
  }
}

public class Square extends Shapes {
  
  Square() {
    super("Square");
    System.out.println("Square constructor");
  }

  public static void main(String[] args) {
    Square s = new Square();

  }

}
Shape name is: Square
Square constructor

arayış

Şərh yaz

Translate »
1