Java .

Java Interfaces

an example of using an interface

interface Fruit {
   public boolean hasAPeel();       
   //has a peel must be implemented in any class implementing Fruit
   //methods in interfaces must be public
}        

interface Vegetable { public boolean isARoot(); //is a root must be implemented in any class implementing Vegetable //methods in interfaces must be public }

class FandVUtility { static String doesThisHaveAPeel(Fruit fruitIn) { if (fruitIn.hasAPeel()) return "This has a peel"; else return "This does not have a peel"; } static String isThisARoot(Vegetable vegetableIn) { if (vegetableIn.isARoot()) return "This is a root"; else return "This is not a root"; } static String doesThisHaveAPeelOrIsThisRoot( Tomato tomatoIn) { if (tomatoIn.hasAPeel() && tomatoIn.isARoot()) return "This both has a peel and is a root"; else if (tomatoIn.hasAPeel() || tomatoIn.isARoot()) return "This either has a peel or is a root"; else return "This neither has a peel or is a root"; } }

class Tomato implements Fruit, Vegetable {

boolean peel = false; boolean root = false;

public Tomato() {}

public boolean hasAPeel() //must have this method, // because Fruit declared it { return peel; } public boolean isARoot() //must have this method, // because Vegetable declared it { return root; }

public static void main(String[] args) {

//Part one: making a tomato Tomato tomato = new Tomato();

System.out.println(FandVUtility.isThisARoot(tomato)); //output is: This is not a root System.out.println( FandVUtility.doesThisHaveAPeel(tomato)); //output is: This does not have a peel System.out.println (FandVUtility.doesThisHaveAPeelOrIsThisRoot (tomato)); //output is: This neither has a peel or is a root

//Part two: making a fruit //Fruit = new Fruit(); //can not instantiate an interface like // this because Fruit is not a class Fruit tomatoFruit = new Tomato(); //can instantiate by interface like // this because Tomato is a class

//System.out.println( // FandVUtility.isThisARoot(tomatoFruit)); //can not treat tomatoFruit as a Vegetable // without casting it to a Vegetable or Tomato System.out.println( FandVUtility.doesThisHaveAPeel(tomatoFruit)); //output is: This does not have a peel //System.out.println // (FandVUtility.doesThisHaveAPeelOrIsThisRoot // (tomatoFruit)); //can not treat tomatoFruit as a Vegetable // without casting it to a Vegetable or Tomato } }
Comments
Sign in to be the first to comment on Java Interfaces.