OCA Java imtahan mövzuları

Inheriting & Hiding Variables

Inheriting Variables

Dəyişənlər üçün qaydalar sadədir. Java dəyişənləri override etməyə icazə vermir. Əgər parent və child classda eyni adlar dəyişənlər varsa, java override əvəzinə gizlədir.

 

Hiding Variables

Static metodu gizlətmək üçün istifadə olunan qaydalar dəyişənlər üçün də eynidir. Dəyişənlər override olunmur, ona görə də əgər biz eyniadlı dəyişənə parent classda müraciət ediriksə, parent classdakı dəyişən istifadə edilir. Yox əgər child classın daxilində müraciət ediriksə, o zaman child classdakı dəyişən istifadə edilir. Amma child classın daxilində super açar sözü ilə birbaşa parent dəyişəni də istifadə edə bilərik.

class Car {

    protected String color = "black";
    static double speed = 200.;

    public void getCarDetails() {
        System.out.println("color of car: " + color);
        System.out.println("speed of car: " + speed);
    }
}

public class BMW extends Car {

    protected String color = "white";
    double speed = 320.;

    public void getBMWDetails() {
        System.out.println("color of BMW: " + color);
        System.out.println("speed of BMW: " + speed);
        System.out.println("speed difference: " + (speed - super.speed));
    }

    public static void main(String[] args) {
        BMW obj = new BMW();
        obj.getCarDetails();
        System.out.println();
        obj.getBMWDetails();
    }
}

Output:

color of car: black
speed of car: 200.0

color of BMW: white
speed of BMW: 320.0
speed difference: 120.0

Göründüyü kimi dəyişənlər override edilmir, referans hansı classa aiddirsə, həmin classa məxsus olan dəyişən də çağırılır:

Car car = new BMW();
BMW bmw = new BMW();
System.out.println(car.color);  // black
System.out.println(bmw.color);  // white

 

[topics lang=az]

About the author

Mushfiq Mammadov

Leave a Comment


The reCAPTCHA verification period has expired. Please reload the page.

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.