Polymorphism and Interfaces in Java (can polymorphism be used to implement interfaces…why?)

后端 未结 8 1994
隐瞒了意图╮
隐瞒了意图╮ 2020-12-05 17:14

In the real world what do people use this for (to solve what types of problems)? Can I see some example code of these working together? All I can find is code about cats and

8条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-05 17:42

    Sure,

    Below is concrete example of the "Observer" pattern, using classes and interfaces to accomplish polymorphic behavior in a logger system:

    interface ILogger{
    
       public void handleEvent (String event);
    }
    
    class FileLogger implements ILogger{
    
       public void handleEvent (String event){
           //write to file
       }
    }
    
    class ConsoleLogger implements ILogger{
    
       public void handleEvent (String event){
           System.out.println( event );
       }
    }
    
    class Log {
    
       public void registerLogger (ILogger logger){
    
           listeners.add(logger);
       }
    
       public void log (String event){
    
           foreach (ILogger logger in listeners){
    
                logger.handleEvent(event); //pass the log string to both ConsoleLogger and FileLogger!
           }
       }
    
       private ArrayList listeners;
    }
    

    Then, you could use it as follows:

    public static void main(String [] args){
    
         Log myLog();
         FileLogger myFile();
         ConsoleLogger myConsole();
    
         myLog.registerLogger( myFile );    
         myLog.registerLogger( myConsole );
    
        myLog.log("Hello World!!");
        myLog.log("Second log event!");
    }
    

    Hope this helps your understanding of interfaces and polymorphism.

提交回复
热议问题