Dziedziczenie - przykłady

/* Prostopadloscian2.java */

class Prostokat
{
  int a;
  int b;

  Prostokat(int a, int b)
  {
    this.a = a;
    this.b = b;
  }
  
  int pole()
  {
    return a*b;
  }
}

class Prostopadloscian extends Prostokat
{
  int c;
  
  Prostopadloscian(int a, int b, int c)
  {
    super(a,b); // wywołanie konstruktora z klasy bazowej
    this.c = c;
  }
  
  int pole()
  {
    return 2*a*b + 2*a*c + 2*c*b;
  }
  
  int objetosc()
  {
    return super.pole()*c; // wywołanie metody pole z klasy bazowej
  }
}

public class Prostopadloscian2
{
  public static void main(String[] args)
  {
    Prostopadloscian pr = new Prostopadloscian(2,3,4);
    
    System.out.println("a = " + pr.a);
    System.out.println("b = " + pr.b);
    System.out.println("c = " + pr.c);
    
    System.out.println("Pole pr = " + pr.pole());
    System.out.println("Objetosc pr = " + pr.objetosc());
  }
}
a = 2
b = 3
c = 4
Pole pr = 52
Objetosc pr = 24
Press any key to continue...
/* Prostopadloscian3.java */

class Prostokat
{
  int a;
  int b;

  Prostokat(int a, int b)
  {
    this.a = a;
    this.b = b;
  }
  
  public String toString() // przesłaniamy metodę z klasy Object
  {
    return "a = " + a + "\nb = " + b;
  }
  
  int pole()
  {
    return a*b;
  }
}

class Prostopadloscian extends Prostokat
{
  int c;
  
  Prostopadloscian(int a, int b, int c)
  {
    super(a,b);
    this.c = c;
  }
  
  public String toString() // przesłaniamy metodę z klasy Prostokat
  {
    return super.toString() + "\nc = " + c;
  }
  
  int pole()
  {
    return 2*a*b + 2*a*c + 2*c*b;
  }
  
  int objetosc()
  {
    return super.pole()*c;
  }
}

public class Prostopadloscian3
{
  public static void main(String[] args)
  {   
    Prostopadloscian pr = new Prostopadloscian(2,3,4);
    
    System.out.println(pr);
    System.out.println("Pole pr = " + pr.pole());
    System.out.println("Objetosc pr = " + pr.objetosc());
  }
}
a = 2
b = 3
c = 4
Pole pr = 52
Objetosc pr = 24
Press any key to continue...

Strona główna