Interfejsy

  1. Przetestuj, przeanalizuj i przedyskutuj przykłady z kolegami.

  2. Dodaj interfejs Przeszukiwalne, zawierający metodę boolean czyPasuje(double wzorzec), w taki sposób żeby umożliwić przeszukiwanie tablicy figur.


 


interface Mierzalne //z definicji wszystkie metody sa tu publiczne i abstrakcyjne 
{
   double pole();
   double obwod();
}


abstract class Figura implements Mierzalne
{
   void info()                  
   {                            
      System.out.println(this); 
   }                            
}


class Okrag extends Figura
{
   double promien;
   
   Okrag(double promien)    
   {                        
      this.promien=promien; 
   }                        
   
   public double pole()            
   {                               
      return 3.14*promien*promien; 
   }                               
   
   public double obwod()     
   {                         
      return 2*3.14*promien; 
   }                         
   
   public String toString()          
   {                                 
      return "okrag o pr. "+promien; 
   }                                 
}


class Prostokat extends Figura
{
   double dlugosc;
   double szerokosc;
   
   Prostokat(double dlugosc,double szerokosc) 
   {                                          
      this.dlugosc=dlugosc;                   
      this.szerokosc=szerokosc;               
   }                                          
   
   public double pole()         
   {                            
      return dlugosc*szerokosc; 
   }                            
   
   public double obwod()            
   {                                
      return 2*dlugosc+2*szerokosc; 
   }                                
   
   public String toString()                                
   {                                                       
      return "prostokat o wym. "+dlugosc+" na "+szerokosc; 
   }                                                       
}


public class Program
{
   public static void main(String[] args)                        
   {                                                             
      Figura[] a={new Prostokat(3,5),new Okrag(8),new Okrag(3)}; 
                                                                 
      double suma=0;                                             
                                                                 
      for(int i=0;i<a.length;i++)                                
      {                                                          
         a[i].info();                                            
         suma+=a[i].pole();                                      
      }                                                          
                                                                 
      System.out.println("suma pol figur: "+suma);               
   }                                                             
}