public class Ph1809 { public static void main (String[] args) { // määritykset Ympyra2 eka, toka; Ympyra3 kolmas, neljäs; // toiminta eka = new Ympyra2(2); // luodaan kaksi luokasta Ympyra2 toka = new Ympyra2(1); kolmas = new Ympyra3(4); //luodaan kaksi luokasta Ympyra3 neljäs = new Ympyra3(10); System.out.println(eka); //tietojen tulostus toString-metodilla System.out.println(toka); System.out.println(kolmas); System.out.println(neljäs); } } class Ympyra2 //yliluokka { protected double säde; //periytyy protected int nro; //periytyy protected static int vuorossa = 1; //periytyy protected int tyyppi = 0; //periytyy public Ympyra2(double r) //yliluokan muodostin { säde = r; nro = vuorossa; vuorossa = vuorossa + 1; tyyppi = 2; } public double pala() //yliluokan metodi { return(Math.PI * säde * säde); } public String toString() //yliluokan metodi, periytyy { return("nro= " + nro + " tyyppi= " + tyyppi + " säde= "+säde + " ominaisuus= "+pala()); } } class Ympyra3 extends Ympyra2 //aliluokka { Ympyra3(double r) //aliluokan muodostin { super(r); //käytetään yliluokan muodostinta yhteisren tietojen hoitoon tyyppi = 3; //oma tyyppikoodi } public double pala() //kumoaa ylilukan saman nimisen metodin { return(2* Math.PI * säde); } }