4.4.10 Polimorfism

Polimorfismul apare în aproape fiecare aplicație JAVA

Polimorfism – proprietate ce posedă unele corpuri de a cristaliza în sisteme diferite.

În ceea ce privește POO polimorfismul înseamnă o cale de a acţiona în moduri diferite.

Supraîncărcarea(overloading) este un tip de polimorfism

Suprascrierea(overriding) ne permite deeasemenea să scriem o metodă în mai multe. În consecintă suprascrierea este de asemenea polimorfism

Polimorfismul poate fi:static(prin supraîncărcare – overloading) și dinamic(prin suprascriere -overriding)

SUPRASCRIERE(overriding):

@Override
public void runOpMode() {
//Cu acest program putem duce robotul in fata daca timpul scurs este mai mare ca 3 secunde
telemetry.update();

//Initializam cu tipul de date LONG timpul initial
long start = System.currentTimeMillis();

motorStangaFata = hardwareMap.dcMotor.get("frontLeft");
motorStangaSpate = hardwareMap.dcMotor.get("backLeft");
motorDreaptaFata = hardwareMap.dcMotor.get("frontRight");
motorDreaptaSpate = hardwareMap.dcMotor.get("backRight");

….

metoda este suprascrisă și bineînțeles codul care se va executa este cel care suprascrie metoda moștenită din clasa părinte, Practic codul funcției din clasa părinte este ignorat

SUPRAINCARCARE(OVERLOADING):

Metode(funcții) cu același nume dar cu parametrii diferiți( ca număr și/sau tip)

class robot

{

public int adunare(int a,int b)

{ retun a+b;}

public int adunare(int a,int b, int c)

{return a+b+c;}

public int adunare(int a,int b, int c, int d)

{return a+b+c+d;}

}

Diferența dintre cele 3 funcții cu numele adunare este dată de numărul parametrilor. Atunci când este apelată această funcție va fi aleasă acea funcție care va corespunde ca număr și tip de parametrii.

x=adunare(2,3); //va fi executata prima functie

x=adunare(10,15,20);// va fi executata a doua functie