`
lib
  • 浏览: 135656 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

一个类实现多个具有相同方法的接口

阅读更多

       今天,我的一个同事突然间问我一个问题:“如果有一个类,实现了多个接口,这些接口里面有形同的方法,会出现什么情况?”。我感觉这个问题挺有意思(薄弱的java基础啊!),于是简单的写了几个接口和类,看看会有什么情况发生;

 

第一个接口的内容:

 

public interface Angel {
	public abstract void say();
	public abstract void work();
}

 

 第二个接口的内容:

 

public interface Devil {
	public abstract void say();
	public abstract void work();
}

 

 实现接口的类的内容:

 

public class People implements Angel, Devil {

	public void say() {
		System.out.println("我实现了谁的say()方法??");
	}
	
	public void work() {
		System.out.println("我实现了谁的work()方法??");
	}

}

 

 main()方法的内容:

 

public static void main(String[] args) {
		try {
			
			Angel angel = new People();
			angel.say();
			angel.work();
			
			Devil devil = new People();
			devil.say();
			devil.work();
			
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}

 

 打印出的结果:

 

 

我实现了谁的say()方法??

我实现了谁的work()方法??

我实现了谁的say()方法??

我实现了谁的work()方法??

 

注:在People这个类中,按住alt键,点击say()方法或者work()方法,都无法定位到接口中。

分享到:
评论
1 楼 BuN_Ny 2012-03-09  
是我问的那个问题吗?我怎么会问这种问题呢。。。

相关推荐

    VB6.0 做的类接口示例

    4. **接口与继承**:虽然VB6.0不支持多重继承(一个类只能继承一个基类),但它可以通过实现多个接口来模拟多继承的效果,从而获得多个类的功能。 5. **接口的用途**:接口常用于定义规范,确保类遵循特定的行为...

    接口的使用方法练习

    同时,如果一个类实现了两个具有相同签名的默认方法,需要在该类中重写这个方法以解决冲突。 在`InterfaceExercise`中,我们可能会遇到接口之间的继承。一个接口可以继承另一个接口,并添加新的方法或者修改已有的...

    不会实现接口成员

    3. **接口分离原则**:如果一个接口包含多个功能,考虑将其拆分为更小、更具体的接口,这样可以降低类之间的耦合度。 4. **实现细节**:在实现接口成员时,注意不要引入不必要的复杂性。尽可能保持简洁。 通过以上...

    接口类怎么用

    4. **接口与多态性**:通过接口,不同类可以具有相同的接口,这使得可以使用接口类型的引用指向实现该接口的任何类的对象,从而实现多态性。例如,可以定义一个方法`void interactWithMonster(Monster m)`,即使怪物...

    面向对象与Java实现(抽象类、接口

    接口的设计主要用于定义行为规范或“契约”,多个类可以通过实现同一个接口来共享相同的行为特征,这是实现多态性的另一种方式。 #### 语法与特性 接口的定义使用`interface`关键字,例如: ```java interface ...

    接口的多态实现

    一个类只能继承一个抽象类,但可以实现多个接口。 3. 默认方法:Java 8引入了默认方法,允许在接口中提供默认的实现。这使得接口可以为实现类提供一些基础实现,同时保留多态性。 总的来说,接口的多态实现是提高...

    抽象类和接口

    - 一个类可以实现多个接口,支持多重继承的概念。 - 接口中的方法默认是没有实现的,但自Java 8起,接口可以包含默认方法和静态方法。 **应用场景**: - 当需要定义一组行为规范,但不确定谁会实现这些规范时,可以...

    C#继承,接口,多态的实现与区别

    - **接口**提供了一种规范,强制类实现指定的方法,一个类可以实现多个接口,实现多继承。 - **多态**允许更灵活的代码编写,提高了程序的扩展性和适应性,可以在不关心具体类型的情况下处理对象。 在实际开发中,...

    抽象类和接口 区别分析

    - **接口**:一个类可以实现多个接口。 2. **成员变量**: - **抽象类**:可以拥有私有、受保护、公共的实例变量。 - **接口**:只能拥有公共静态常量,即默认修饰符为`public static final`。 3. **方法定义**...

    抽象类 接口

    3. **类与类之间不能多继承,但一个类可以实现多个接口,从而获得多继承的效果。** #### 四、继承关系与实现关系 - **抽象类可以继承抽象类**:这体现了类与类之间的继承关系,一个抽象类可以从另一个抽象类继承...

    \\java类、抽象类、接口、继承和对象解析 .doc

    接口是多继承的唯一方式,一个类可以实现多个接口。接口中的方法默认是 public abstract 的,意味着实现接口的类必须提供这些方法的具体实现。如 `java.sql.Connection`、`Statement` 和 `ResultSet` 都是接口,它们...

    VB代码接口实现实例

    在VB.NET编程中,接口(Interface)是一种定义行为规范的类型,它允许不同的类实现相同的方法,从而确保这些类具有统一的行为。接口是完全抽象的,不包含任何方法的实现,仅定义方法、属性、事件和索引器的签名。在...

    Java基础教程之实现接口

    2. 类可以实现多个接口,通过逗号分隔,如`implements Interface1, Interface2`,实现多重继承的效果。 3. 接口的实例不能创建,只能通过接口引用类的对象来调用接口方法。 4. 接口提供了多态性,不同类实现同一个...

    07接口方法重构.zip

    4. **提取类层次结构**:有时,多个类实现了相同接口,但它们的行为有所不同,这时可以考虑使用抽象类来封装共享的行为,然后让这些类继承抽象类,只实现各自特有的方法。抽象类可以看作是接口的一个具体实现,提供...

    C#.net经典实例\全面剖析C_接口编程之实现接口_(1).doc

    5. **多接口实现**:当一个类实现多个接口时,如果这些接口中有相同名称的成员,则必须显式地实现这些成员,以便提供不同的实现逻辑。 #### 结论 在C#.NET编程中,显式接口成员实现是一种重要的编程技术,它可以...

    java接口与内部类

    - 多态性:接口支持Java中的多态性,不同类可以实现相同的接口,从而具有相同的行为集。 - 扩展性:通过接口,可以在不修改现有类的情况下增加新的行为。 - **接口的声明**: - 使用`interface`关键字声明。 - ...

    接口,内部类,抽象类概念和区别

    在Java中,单继承限制了一个类只能直接继承一个抽象类,但同时可以实现多个接口。 然后,我们来看一下**内部类**。内部类是定义在一个类内部的类,它可以访问外部类的所有成员,包括私有成员。内部类分为四种类型:...

    接口和抽象类的区别_--相信你看完不会再混淆了

    例如,如果希望多个类能够响应相同的事件或者执行相同的操作,使用接口是一个很好的选择。 - **抽象类**通常用于定义一系列相关的类的基础结构。当类之间有共享的数据或逻辑时,使用抽象类可以减少代码重复,并确保...

Global site tag (gtag.js) - Google Analytics