当前位置: 首页 > 面试题库 >

Java中的多态和接口(多态可以用于实现接口吗?为什么?)

傅长恨
2023-03-14
问题内容

在现实世界中,人们将其用于(解决什么类型的问题)?我可以看到其中的一些示例代码吗?我所能找到的只是关于猫和狗说话或喝牛奶或咖啡的人的代码…

人们真的通过接口实现多态吗?做什么的?


问题答案:

当然,

下面是“观察者”模式的具体示例,该模式在记录器系统中使用类和接口来实现多态行为:

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<ILogger> listeners;
}

然后,您可以按以下方式使用它:

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!");
}

希望这有助于您理解接口和多态性。



 类似资料:
  • 当我继续我的在线教程,我遇到了这一课。我有一个接口和两个实现该接口的类。 null 这是因为所有的类都实现了接口Payve[]吗? 如果接口是在顶层层次结构中定义的,那么是否总是可以创建实现该接口的所有类的对象?

  • 问题内容: (学问) 根据 维基百科 ,有3种类型的多态性: 临时多态性 指可以应用于不同类型参数的多态函数,但其​​行为取决于所应用参数的类型而有所不同 换句话说:重载: 参数多态性 允许以通用方式编写函数或数据类型,以便它可以相同地处理值而无需依赖其类型 换句话说:泛型 范例: 亚型多态性 允许将函数编写为采用某种类型T的对象,但如果传递了属于类型T的子对象S的对象,则该函数也可以正常工作 (

  • 本文向大家介绍接口可以在Java中扩展多个接口吗?,包括了接口可以在Java中扩展多个接口吗?的使用技巧和注意事项,需要的朋友参考一下 是的,我们可以做到。一个接口可以扩展Java中的多个接口。 例: 输出:

  • 我试图了解使用接口的好处是什么,以便我可以知道何时以及如何使用它们。互联网上的大多数资源都是相对表面的,解释了接口是如何工作的,但现在为什么要使用它们,当我查找名义上的问题时,我没有得到任何结果告诉我接口的目的是否超出了多态性和多重继承。 我的推理是,如果一个接口只被一个类继承,它将是无用的,当一个接口被多个类继承时,它没有区别,除非它用于多态,唯一使实现不同于扩展的是多重继承。 如果我确实知道他

  • 问题内容: 我对此事仍然有些困惑。我到目前为止发现的是 (这里已经问过类似的问题,但我还有其他几点。) 接口是仅抽象方法和最终字段的集合。 Java中没有多重继承。 接口可以用于在Java中实现多重继承。 继承的一个强项是我们可以在派生类中使用基类的代码,而无需再次编写。可能这是继承在那里最重要的事情。 现在.. Q1。由于接口仅具有抽象方法(无代码),因此,如果我们实现任何接口,那么该如何继承呢

  • 在OOP中,抽象是当我们只向用户提供有用的细节,并隐藏所有实现细节时。那么,如果我有一个接口,并且我在一个类中实现它,那么这是如何实现抽象的呢?我读了这篇关于“如何使用接口实现100%的抽象”的文章 如果这个问题听起来离题或者含糊不清,那么它真的是,我想知道的是oop中的抽象是如何与接口相关的。