Дар бораи қоидаҳои борбардории усулҳо нақл кунед.
sobes.tech AI
Ҷавоб аз AI
Барои иваз кардани методҳо (Method Overloading) дар барномасозии объектӣ-ориентатсия имкон медиҳад, ки чанд метод дар як синф бо номи якхела, аммо бо сигнатураҳои гуногун муайян карда шаванд.
Қоидаҳои асосӣ барои иваз кардани методҳо:
-
Фарқият дар сигнатураҳо: Сигнатураи метод номи метод ва рӯйхати намудҳои параметрҳои он дар тартиби мувофиқро дар бар мегирад. Барои он ки методҳо ҳамчун ивазшуда ҳисобида шаванд, сигнатураҳои онҳо бояд фарқ кунанд.
// Мисолҳои сигнатураҳои фарқкунанда void print(int i) { } void print(String s) { } void print(int i, String s) { } void print(String s, int i) { } // Тартиби параметрҳо фарқ мекунад -
Номи метод бояд якхела бошад: Методҳои ивазшуда бояд номи якхела дошта бошанд.
// Мисоли дуруст барои ивазкунӣ class Example { void process(int a) { } void process(double b) { } } -
Намуди баргардонидашавии арзиш қисми сигнатура нест: Тавре ки тағир додани танҳо намуди баргардонидашавии арзиш, методҳоро ивазшуда намекунад. Компилятор наметавонад фарқ кунад, ки кадом метод бояд даъват шавад, агар сигнатураҳои параметрҳо якхела бошанд.
// Илова накардан - хато дар компиляция int calculate() { return 1; } String calculate() { return "error"; } -
Модификаторҳои дастрасӣ ва спецификаторҳои истисноҳо ба ивазкунӣ таъсир намерасонанд: Ҳамчун намуди баргардонидашавии арзиш, тағир додани танҳо модификаторҳои дастрасӣ (
public,private,protected,default) ё рӯйхати истисноҳо (throws) ба ивазкунӣ оварда намерасонанд.// Илова накардан - хато дар компиляция, агар сигнатураҳои параметрҳо якхела бошанд public void doSomething() { } private void doSomething() { } -
Тартиби параметрҳо аҳамият дорад: Тартиби тағир додани намудҳои параметрҳо сигнатураҳоро фарқ мекунад.
// Ивазкунӣ void setup(int width, int height) { } void setup(int height, String unit) { } // Фарқ мекунад бо параметри дуввум void setup(String unit, int size) { } // Фарқ мекунад бо намуд ва тартиби параметрҳо -
Миқдори параметрҳо аҳамият дорад: Миқдори гуногуни параметрҳо ба сигнатураҳои гуногун оварда мерасонад.
// Ивазкунӣ void log(String message) { } void log(String message, int level) { }
Аз ин рӯ, омилҳои асосӣ барои ивазкунӣ ягонагии сигнатураи метод аст, ки онро номи он ва маҷмӯи (намунаҳо ва тартиб) параметрҳо муайян мекунанд.