`
Ericy0713
  • 浏览: 2081 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
最近访客 更多访客>>
社区版块
存档分类
最新评论

JAVA多实现会出现的问题:接口冲突、重载模糊

阅读更多
===============================接口冲突问题==============================
interface Ainterface {
	public String say();
}
interface Binterface {
	public int say();
}
/**
 * 接口冲突的问题(不能被解决的问题)
 * @author Ericy
 * @version 1.0
 */
public class Interface implements Ainterface, Binterface {
	// 提示错误一:The return type is incompatible with B.say()
	// -->返回类型和B.say()方法不兼容
	// 提示错误二:Duplicate method say() in type Interface
	// -->在Interface类型中say()方法重复了
	// 因为返回值类型不包含在方法的重载的范围内(方法重载:形式参数类型、个数、顺序的不同)
	@Override
	public String say() {
		// TODO Auto-generated method stub
		return null;
	}
	@Override
	public int say() {
		// TODO Auto-generated method stub
		return null;
	}
}

=================================重载模糊问题===============================
interface A {}
interface B {}
/**
 * C类实现A接口和B接口
 * @author Ericy
 * @version 1.0
 */
class C implements A, B {}

class D {
	/**
	 * say(...)方法重载
	 * @param a A类型的参数
	 */
	public void say(A a) {
		System.out.println("A");
	}
	/**
	 * say(...)方法重载
	 * @param b B类型的参数
	 */
	public void say(B b) {
		System.out.println("B");
	}
}
/**
 * 重载模糊的问题(是可以被解决的问题)
 * @author Ericy
 * @version 1.0
 */
public class Overload {
	public static void main(String[] args) {
		D d = new D();
		C c = new C();
		// 这就是重载出现模糊的地方,编译器不知道要怎么识别c对象到底是A类型的还是B类型的。
		// 解决该问题:你就必须告诉编译器我当前的这个c对象是A类型还是B类型的。
		d.say((A) c);
		d.say((B) c);
	}
}
分享到:
评论

相关推荐

    Java 语言程序设计:第5章接口多态.ppt

    接口是 Java 语言中的一种抽象机制,它提供了一种定义类之间的“协议”的方式,允许类之间实现多继承,同时免除 C++ 中的多继承那样的复杂性。同时,接口也可以用来定义常量和抽象方法,提供了一个面向对象的重要...

    Java平台 Java虚拟机 Java 应用编程接口

    1. 简单性:Java的语法接近C/C++,但移除了复杂和易混淆的特性,如操作符重载和多继承,且提供了自动垃圾回收机制。 2. 面向对象:Java支持类、接口和继承,虽然仅支持单继承,但接口可以多继承,同时支持动态绑定。...

    Java重写重载线程

    在Java中,**方法重载**是指在同一个类中定义多个具有相同名称但参数列表不同的方法。这里提到的“参数列表不同”不仅包括参数的数量不同,也包括参数的类型或顺序不同。值得注意的是,返回类型不能作为区分重载方法...

    java重载的实现方法

    3. 不能因为返回值类型不同而构成重载:如果两个方法的名称和参数列表相同,但返回值类型不同,这种情况不能构成重载,并且会编译出错。 Java重载是一种灵活的机制,允许开发者在同一个类中定义多个方法,具有相同...

    本项目适合于新手小白入门快速了解掌握Java 大部分必备知识,用于Java的学习与进阶,也可以用于回忆巩固Java 基础用法语法

    Study2 类:Java 重载与重写 Study3 类:Java 多态 Study4 类:Java 抽象类 Study5 类:Java 封装 Study6 类:Java 接口 Study7 类:Java 枚举 Study8 类:Java 反射 Study9 类:Java 注解 Study10 类:Java List、...

    java类重载,可以用于热更新

    Java类重载是面向对象编程中的一个重要概念,它允许我们在同一个类中定义多个同名方法,但这些方法的参数列表必须不同(参数数量、类型或顺序至少有一个不同)。这种机制使得代码更加灵活,易于理解和使用。类重载并...

    Java方法重载的实例

    Java方法重载是面向对象编程中的一个重要概念,它允许在一个类中定义多个具有相同名称但参数列表不同的方法。这样做的好处在于,通过方法名就可以直观地理解方法的功能,而具体的执行逻辑则由传入的参数类型和数量...

    java方法练习.docx

    * Java 中的方法重载:了解方法重载的概念和使用。 * Java 中的基本数据类型:了解整数类型和字符串类型的使用。 * Java 中的方法:了解方法的定义和调用。 6. 定义三个重载方法 max() * Java 中的方法重载:了解...

    Java方法的艺术:重载与重写的深度解析

    #### 一、方法重载:Java 中的多态性 方法重载发生在同一个类中,当有两个或多个方法在类中具有相同的名称,但参数列表不同。具体来说,方法重载的关键点在于: - 参数列表不同:可以是参数的数量不同、参数的类型...

    java开发接口帮助文档

    接口之间可以通过`extends`关键字实现接口的继承,形成接口的层次结构。了解这些关系有助于理解代码的组织结构,优化设计,并避免潜在的错误。 `.chm`文件是Windows平台下的一种帮助文件格式,它将HTML、图像和其他...

    C++接口、重载和模板

    纯虚函数没有具体实现,仅作为接口声明,强制派生类提供自己的实现。这样,抽象类可以用来定义一个规范,确保所有派生类都遵循同一套规则。例如: ```cpp class IShape { public: virtual ~IShape() {} virtual ...

    ACCP5.0S2教程\使用Java实现面向对象编程(Java OOP)\使用Java实现面向对象编程(Java OOP)上机贯穿案例源码

    8. **集合框架**:Java集合框架包括List、Set、Map等接口及其实现类,如ArrayList、HashSet、HashMap等。学习者需要理解它们的特点和使用场景。 9. **接口与抽象类的区别**:接口完全是抽象的,不包含任何方法实现...

    Java面试题目以及答案3.docx

    问题分析: 多态性是面向对象编程(OOP)的重要概念,允许同一个接口可以由不同的对象来实现,从而提高代码的灵活性和可扩展性。 解答: 多态性分为编译时的多态性(也称为静态多态性)和运行时的多态性(也称为...

    java中方法重载内存分析

    在Java编程语言中,方法重载(Overloading)是一种重要的多态性实现方式,它允许我们在同一个类中定义多个同名但参数列表不同的方法。理解方法重载的内存分配过程对于初学者来说至关重要,因为这有助于深入理解Java...

    java中重载与重写

    在Java编程语言中,方法的重载(Overloading)与重写(Overriding)是两个非常重要的概念。它们虽然只有一字之差,但其实质却大相径庭。理解这两者的不同对于深入掌握Java语言至关重要。 ### 一、重载(Overloading...

    Java语言中的 覆盖重载和多态

    - 重载可在同一类或子类中进行,覆盖只能在子类或实现接口时进行。 **编译时多态与运行时多态** 方法重载是编译时多态,因为Java在编译时根据实际参数确定调用哪个重载方法。而方法覆盖则表现了两种多态性,如果...

    Java接口名称冲突问题的讲解

    3. **使用实现类覆盖方法**:在实现接口的类中,可以明确地覆盖这些冲突的方法,提供不同的实现,从而解决冲突。 总结来说,Java中接口名称冲突问题主要是由于方法的唯一标识不包括返回类型。在编写代码时,应该...

    Java实现重载的方法共1页.pdf.zip

    Java编程语言中的方法重载(Overloading)是面向对象特性之一,它允许在同一个类中定义多个同名方法,但这些方法的参数列表必须不同,包括参数的数量、类型或者顺序。这种方法重载使得代码更加简洁,提高了代码的...

    Java中重载和重写总结

    Java 中的重载(Overloading)和重写(Overriding)是两个非常重要的概念,它们都是多态性的体现形式。 一、Java 中的重载(Overloading) Java 中的重载是指在同一个类中可以创建多个方法,它们具有相同的名字,...

    Java方法重载+Java重载案例

    Java方法重载+Java重载案例+Java重载 Java方法重载+Java重载案例+Java重载 Java方法重载+Java重载案例+Java重载 Java方法重载+Java重载案例+Java重载

Global site tag (gtag.js) - Google Analytics