Java vorislik
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);
}
}
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)
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
