Extras din curs
Aplicaţia 1. (Clase derivate)
Clasa c1 are 2 variabile membre (int x şi y) şi o metodă (metoda1())
Clasele c2 şi c3 extind clasa c1. Clasa c2 conţine metoda metoda2(), iar clasa c3 conţine variabila z.
Clasa c4 extinde clasa c2 şi conţine variabila u şi metoda metoda3().
class c1{
int x,y;
void metoda1(){
x+=1;
y+=1;
}
}
class c2 extends c1{
void metoda2(){
x+=2;
y+=2;
}
}
class c3 extends c1{
int z;
}
class c4 extends c2{
int u;
void metoda3(){
x+=3;
y+=3;
u+=3;
}
}
public class clasa_principala {
public static void main(String a[]) {
c1 o1=new c1();
o1.x=1; o1.y=1;
o1.metoda1();
System.out.println("o1.x="+o1.x);
System.out.println("o1.y="+o1.y);
c2 o2=new c2();
o2.x=5; o2.y=5;
o2.metoda1();
System.out.println("o2.x="+o2.x);
System.out.println("o2.y="+o2.y);
o2.metoda2();
System.out.println("o2.x="+o2.x);
System.out.println("o2.y="+o2.y);
c3 o3=new c3();
o3.x=4; o3.y=4; o3.z=4;
o3.metoda1();
System.out.println("o3.x="+o3.x);
System.out.println("o3.y="+o3.y);
System.out.println("o3.z="+o3.z);
c4 o4=new c4();
o4.x=3; o4.y=4; o4.u=4;
o4.metoda1();
System.out.println("o4.x="+o4.x);
System.out.println("o4.y="+o4.y);
System.out.println("o4.z="+o4.u);
o4.metoda2();
System.out.println("o4.x="+o4.x);
System.out.println("o4.y="+o4.y);
System.out.println("o4.z="+o4.u);
o4.metoda3();
System.out.println("o4.x="+o4.x);
System.out.println("o4.y="+o4.y);
System.out.println("o4.z="+o4.u);
}
}
Aplicaţia 2 (Clase derivate - supradefinirea metodelor)
O subclasa a unei clase poate rescrie o metoda a clasei parinte, prin implementarea unei metode cu acelasi nume.
O metoda supradefinita poate sa:
-ignore complet codul metodei corespunzatoare din superclasa (a se vedea clasa c2)
-sa extinda codul metodei parinte, executand inainte de codul propriu si functia parinte (a se vedea clasa c3).
class c1{
int x,y;
void metoda1(){
x+=1;
y+=1;
}
void metoda1(int a, int b){
x+=a;
y+=b;
}
}
Preview document
Conținut arhivă zip
- curs_decembrie.doc
- laborator_decembrie.doc
- liste.pdf