Java Cap 3
Java Cap 3
Polimorfism
Cap. 5
Clase derivate. Clase abstracte. Polimorfism
}
public double getSuma()
{
return suma;
}
public void afisare()
{
System.out.println("suma="+suma);
}
}
class TestCont
{
public static void main(String args[])
{
ContBancarExtins c=new ContBancarExtins(1000,0.12);
c.adauga(1000);
c.adaugaDobandaLunara();
c.afisare();
68 Clase derivate. Clase abstracte. Polimorfism
}
}
{
return y;
}
public int getZ()
{
return z;
}
public void afisare()
{
System.out.println("x="+x);
System.out.println("y="+y);
System.out.println("z="+z);
}
public void muta(int dx, int dy, int dz)
{
x=x+dx;
y=y+dy;
z=z+dz;
}
public boolean compara(Punct3D p)
{
if((x==p.x)&&(y==p.y)&&(z==p.z))
return true;
else return false;
}
public double distanta(Punct3D p)
{
double dx=this.x-p.x;
double dy=this.y-p.y;
double dz=this.z-p.z;
double dist=Math.sqrt(dx*dx+dy*dy+dz*dz);
return dist;
}
}
class Punct3DColor extends Punct3D
{
private String culoare;
public Punct3DColor(int x, int y, int z, String culoare)
{
super(x,y,z);
70 Clase derivate. Clase abstracte. Polimorfism
this.culoare=culoare;
}
public String getCuloare()
{
return culoare;
}
class TestPuncte
{
public static void main (String args[])
{
Punct3DColor p=new Punct3DColor(0,1,2,"negru");
p.muta(1,1,1);
p.afisare();
}
}
{
return x;
}
public int getY()
{
return y;
}
public void afisare()
{
System.out.println("x="+x);
System.out.println("y="+y);
}
}
{
super(x,y);
this.z=z;
}
public int getZ()
{
return z;
}
public void afisare()
{
System.out.println("x="+getX());
System.out.println("y="+getY());
System.out.println("z="+z);
}
}
class AfisarePuncte
{
public static void main (String args[])
{
int N;//numarul de puncte
N=Integer.parseInt(JOptionPane.showInputDialog("N="));
Punct p[]=new Punct[N];//vectorul de obiecte Punct (clasa de
//baza)
int i;
for(i=0;i<N;i++){
String sRaspuns=JOptionPane.showInputDialog("Tip punct
(0,1,2) : ");
int raspuns=Integer.parseInt(sRaspuns);
int x=Integer.parseInt(JOptionPane.showInputDialog("x="));
int y=Integer.parseInt(JOptionPane.showInputDialog("y="));
if(raspuns==0){
//citeste un Punct:
p[i]=new Punct(x,y);}
else if(raspuns==1){
//citeste un PunctColor:
String culoare=JOptionPane.showInputDialog("culoare=");
p[i]=new PunctColor(x,y,culoare);}
else if(raspuns==2){
//citeste un Punct3D:
Clase derivate. Clase abstracte. Polimorfism 75
int z=Integer.parseInt(JOptionPane.showInputDialog("z="));
p[i]=new Punct3D(x,y,z);}
}//for
//Afisare vector:
for(i=0;i<N;i++)
p[i].afisare();
}
}
String facultate=JOptionPane.showInputDialog("facultate=");
int nrMatr=Integer.parseInt
(JOptionPane.showInputDialog("nr. matricol="));
s[i]=new Student(nume,prenume,varsta,facultate,nrMatr);
}
int contor_ion=0;
for(i=0;i<N;i++){
String prenumeCrt=s[i].getPrenume();
if(prenumeCrt.compareTo("Ion")==0)contor_ion++;
}
System.out.println(contor_ion);
}
}
class AfisareNumere
{
public static void main (String args[])
{
Numar n;
Random r=new Random();
int caz=r.nextInt(2);
if(caz==0){
//citeste un numar:
int a=Integer.parseInt(JOptionPane.showInputDialog("a="));
n=new Numar(a);
}else
{
//citeste doua numere:
int a=Integer.parseInt(JOptionPane.showInputDialog("a="));
int b=Integer.parseInt(JOptionPane.showInputDialog("b="));
n=new DouaNumere(a,b);
}
//Afisare:
n. afisare();//Numai la executie se stie care versiune de metoda
// afisare() se va apela
Clase derivate. Clase abstracte. Polimorfism 79
}
}
System.out.println("raza="+raza);
}
}
class CercExtins extends Cerc
{
private int x;
private int y;
public CercExtins(int r,int x0, int y0 )
{
super(r);
x=x0;
y=y0;
}
public boolean suntEgale(CercExtins c)
{
if((this.getRaza()==c.getRaza())&&(this.x==c.x)&&(this.y==c.y))
return true;
else return false;
}
public void afisare()
{
System.out.println("raza="+this.getRaza());
System.out.println("x="+x);
System.out.println("y="+y);
}
}
class TestCercExtins
{
public static void main (String args[])
{
CercExtins c=new CercExtins(3,0,1);
System.out.println("Aria= "+c.calculArie());
CercExtins c1=new CercExtins(3,0,10);
System.out.println("Sunt egale= "+c.suntEgale(c1));
}
}
Clase derivate. Clase abstracte. Polimorfism 81