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