public class Punkt3d extends Punkt {

    double z;
		
    Punkt3d (double x, double y, double z) {
	super (x, y);
        this.z = z;
    }
    
    // neue Methoden
    
    public void setZ (double z) {
	this.z = z;
    }

    public double getZ () {
	return z;
    }
	
    public void spiegelnZ () {
	super.spiegelnX();
	super.spiegelnY();
    }
    
    // berschreiben von Methoden aus Klasse Punkt
    
    public void drucken () {
	System.out.println ("(" + super.getX() + ", " +super.getY() + ", " + z +")");
    }
	
    public void drucken (String s) {
	System.out.print (s); this.drucken ();
    }

    public void spiegelnX () {
	super.spiegelnX();
	z = -z;
    }

    public void spiegelnY () {
	super.spiegelnY();
	z = -z;
    }

    public double dist (Punkt3d p) {
	double d;
	double d1;
	double d2;
	double d3;
	d1 = this.x - p.getX();
	d2 = this.y - p.getY();
	d3 = this.z - p.getZ();
	if (norm == 1)
	    d = StrictMath.abs(d1) + StrictMath.abs(d2) + StrictMath.abs(d3);
	else
	    d = StrictMath.sqrt(d1*d1 + d2*d2 + d3*d3);
	return d;
    }

    public boolean istGleich (Punkt3d p) {
	return (this.istGleich(p)) && (this.z == p.getZ());
    }
    
    // Punkt3d erbt die Methoden setX, setY, getX, getY, setNorm. getNorm 
} 
