Java vorislik


ULASHISH

Java vorislik (subclass va superclass)

Java tilida atribut va metodlarni bir sinfdan boshqasiga meros qilib o‘tkazish mumkin. "Vorislik tushunchasi"ni ikki toifaga ajratamiz:

  • subclass (voris sinf) — boshqa sinfdan meros oluvchi sinf
  • superclass (ota sinf) — meros olinadigan sinf

Sinfdan meros olish uchun extends kalit so‘zidan foydalaning.

Quyidagi misolda Car sinfi (subclass) Vehicle sinfidan (superclass) atribut va metodlarni meros qilib oladi:

Misol

class Vehicle {
  protected String brand = "Ford";        // Vehicle attribute
  public void honk() {                    // Vehicle method
    System.out.println("Tuut, tuut!");
  }
}

class Car extends Vehicle {
  private String modelName = "Mustang";    // Car attribute
  public static void main(String[] args) {

    // Create a myCar object
    Car myCar = new Car();

    // Call the honk() method (from the Vehicle class) on the myCar object
    myCar.honk();

    // Display the value of the brand attribute (from the Vehicle class) and the value of the modelName from the Car class
    System.out.println(myCar.brand + " " + myCar.modelName);
  }
}

O‘zingiz sinab ko‘ring »

Vehicle sinfidagi protected modifikatoriga e’tibor berdingizmi?

Vehicle sinfidagi brand atributiga protected kirish modifikatorini berdik. Agar u private bo‘lganida, Car sinfi unga murojaat qila olmas edi.

Nima uchun va qachon "vorislik"dan foydalanish kerak?

- Bu koddan qayta foydalanish uchun foydali: yangi sinf yaratganda mavjud sinfning atributlari va metodlaridan qayta foydalaning.

Maslahat: Keyingi bob — Polimorfizm bilan ham tanishib chiqing: unda meros olingan metodlar turli vazifalarni bajarish uchun ishlatiladi.



final kalit so‘zi

Agar boshqa sinflar biror sinfdan meros olishini istamasangiz, final kalit so‘zidan foydalaning:

Agar final sinfga murojaat qilishga urinsangiz, Java xato hosil qiladi:

final class Vehicle {
  ...
}

class Car extends Vehicle {
  ...
}

Natija taxminan quyidagicha bo‘ladi:

Main.java:9: error: cannot inherit from final Vehicle
class Main extends Vehicle {
                  ^
1 error)
O‘zingiz sinab ko‘ring »



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!