Sobes.tech
Junior

შეგიძლია თუ არა Java-ში კონსტრუქტორების გადაფარვა?

sobes.tech AI

პასუხი AI-სგან

არა, Java-ში კონსტრუქტორები (build) არ იწერება (overriding). გადაწერას ეხება ქვესკლასის მეთოდები, რომლებიც იმავე სიგნატურას (სახელი, დაბრუნების ტიპი და პარამეტრების სია) ფლობენ, როგორც მშობლის კლასში.

შეცვლით, Java-ში კონსტრუქტორებისთვის გამოიყენება გადატვირთვა (overloading). ეს ნიშნავს, რომ ერთ კლასში შეიძლება იყოს რამდენიმე კონსტრუქტორი ერთსა და იმავე სახელით, მაგრამ სხვადასხვა პარამეტრების სითბოთი (რაოდენობა, ტიპები ან სია).

ქვესკლასმა შეუძლია გამოიძახოს მშობლის კლასის კონსტრუქტორები super(...) სიტყვით.

გადატვირთვის მაგალითი:

class MyClass {
    int value;
    String name;

    // ნაგულისხმევი კონსტრუქტორი
    public MyClass() {
        this.value = 0;
        this.name = "default";
        // სხვა კონსტრუქტორის გამოძახება this()
        this(0, "default"); 
    }

    // ერთ პარამეტრიანი გადატვირთული კონსტრუქტორი
    public MyClass(int value) {
        this.value = value;
        this.name = "default";
    }

    // ორი პარამეტრიანი გადატვირთული კონსტრუქტორი
    public MyClass(int value, String name) {
        this.value = value;
        this.name = name;
    }
}