Generics - Interfaces

 

Generic Interfaces

Generics can also be used with interfaces. Generic interfaces are specified similar to generic classes.

Syntax for creating and implementing generic interfaces:

    interface interface-name <type-param-list>

    {

//…

    }

 

    class class-name<type-param-list> implements interface-name<type-arg-list>

    {

    //…

    }

 

The generic interface offers two benefits.

1.   First, it can be implemented for different types of data.

2.   Second, it allows users to put constraints (that is, bounds) on the types of data for which the interface can be implemented.

 


 

// Example – Generic programming and Interface

 

interface Arithmetic<T1 extends Number>

{

    public void fnAdd(T1 v1, T1 v2);

    public void fnSub(T1 v1, T1 v2);

}

 

class Gen<T1 extends Number> implements Arithmetic<T1>

{

    double sum, diff;

   

    public void fnAdd(T1 v1, T1 v2)

    {

         sum = v1.doubleValue() + v2.doubleValue();

    }

    public void fnSub(T1 v1, T1 v2)

    {

         diff = v1.doubleValue() - v2.doubleValue();

    }

    public void fnDisplay()

    {

         System.out.println("Sum = "+sum);

         System.out.println("Difference = "+diff);

    }

}

 

public class GenPgm7

{

    public static void main(String as[])

    {

         Gen<Integer> g1 = new Gen<Integer>();

         g1.fnAdd(4,3);

         g1.fnSub(5,7);

         g1.fnDisplay();

                

         Gen<Double> g2 = new Gen<Double>();

         g2.fnAdd(4.2,3.5);

         g2.fnSub(9.5,7.6);

         g2.fnDisplay();

    }

}

 


 

// Example – Generic programming and Interface

// Minimum and Maximum element in an array

 

interface MinMax<T1 extends Comparable<T1>>

{

    public void fnMin();

    public void fnMax();

}

 

class Gen<T1 extends Comparable<T1>> implements MinMax<T1>

{

    T1 min, max;

    T1 [] Arr;

   

    Gen(T1 [] A)

    {

         Arr = A;

    }

   

    public void fnMin()

    {

         min = Arr[0];

         for(int i = 1;i<Arr.length;i++)

             if(Arr[i].compareTo(min) < 0 )

                 min = Arr[i];

    }

   

    public void fnMax()

    {

         max = Arr[0];

         for(int i = 1;i<Arr.length;i++)

             if(Arr[i].compareTo(max) > 0 )

                 max = Arr[i];

    }

   

 

    public void fnDisplay()

    {

         System.out.print("\n\nArray elements : ");

         for(int i = 0;i<Arr.length;i++)

             System.out.print(Arr[i]+"\t");

         System.out.print("\nMinimum element = "+min);

         System.out.print("\nMaximum element = "+max);

    }

}

 

public class GenPgm8

{

    public static void main(String as[])

    {

         Integer [] A1 = {2,4,1,6,5,3};

         Double []A2 = {2.3, 5.6, 1.3, 4.3};

         String []A3 = {"CSE","IT","CIVIL","EEE","AUTO"};

        

         Gen<Integer> g1 = new Gen<Integer>(A1);

         g1.fnMin();

         g1.fnMax();

         g1.fnDisplay();

                

         Gen<Double> g2 = new Gen<Double>(A2);

         g2.fnMin();

         g2.fnMax();

         g2.fnDisplay();

        

         Gen<String> g3 = new Gen<String>(A3);

         g3.fnMin();

         g3.fnMax();

         g3.fnDisplay();

    }

}

 

 

No comments:

Post a Comment

Don't be a silent reader...
Leave your comments...

Anu