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;
    }
}