Jim Fox
18-12-2008, 16:22
public class Prova
{
public static void main(String[] args)
{
B pippo = new B(10, 0.1);
pippo.add(10);
System.out.println(pippo);
}
}
public class A
{
protected int z ;
private double y;
A(int a, double b)
{
if (a > 0)
z = a;
else
z = 0;
if (b > 0.0 && b < 1.0)
y = b;
else
y = 0.0;
}
public boolean sub(int n)
{
if (z - n > 0)
{
z -= n;
return true;
}
else
return false;
}
public void add(int n)
{
z += n;
}
protected void setB(double a)
{
if (a > 0.0 && a < 1.0)
y = a;
}
public String toString()
{
double k = z + y;
return "" + k;
}
}
public class B extends A
{
B(int a, double b)
{
super(0, 0.0);
if (b > 0.0 && b < 0.5)
setB(b);
}
public void add(int n)
{
if (n > 0)
z += n;
}
}
Cosa fa precisamente l'invocazione del super nella classe B? Porta a zero il contenuto del costruttore A? O altro?
So che funziona come il this, ma il super si riferisce alla classe padre!
Il risultato cmq deve essere 10.1
{
public static void main(String[] args)
{
B pippo = new B(10, 0.1);
pippo.add(10);
System.out.println(pippo);
}
}
public class A
{
protected int z ;
private double y;
A(int a, double b)
{
if (a > 0)
z = a;
else
z = 0;
if (b > 0.0 && b < 1.0)
y = b;
else
y = 0.0;
}
public boolean sub(int n)
{
if (z - n > 0)
{
z -= n;
return true;
}
else
return false;
}
public void add(int n)
{
z += n;
}
protected void setB(double a)
{
if (a > 0.0 && a < 1.0)
y = a;
}
public String toString()
{
double k = z + y;
return "" + k;
}
}
public class B extends A
{
B(int a, double b)
{
super(0, 0.0);
if (b > 0.0 && b < 0.5)
setB(b);
}
public void add(int n)
{
if (n > 0)
z += n;
}
}
Cosa fa precisamente l'invocazione del super nella classe B? Porta a zero il contenuto del costruttore A? O altro?
So che funziona come il this, ma il super si riferisce alla classe padre!
Il risultato cmq deve essere 10.1