`
Ericy0713
  • 浏览: 2055 次
  • 性别: 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语言基础下载

    使用前缀解决命名冲突问题 371 使用命名空间 371 命名空间属性 372 统一资源标识符 372 默认的命名空间 372 使用命名空间 373 XML 文档规则 374 XML Schema 379 Schema和DTD的区别: 380 Schema的数据类型 380 样式...

    java工程师面试精华

    Java中,一个类只能单继承,但可以实现多个接口,所以B和C不正确。D项表述模糊,虽然单一继承限制了类的继承结构,但它使得代码更容易理解和维护。 5. 当x的取值在-3到0之间(不包括0)时,会打印字符串"second",...

    MyBatis面试题(2020最新版).pdf

    模糊查询的LIKE语句可以通过在Mapper XML中使用like标签实现。传递多个参数可以通过Map、注解@Param或使用多个参数,MyBatis会自动处理。 MyBatis的Mapper接口绑定有注解方式和XML方式两种实现,接口调用时需要确保...

    Android编码开发规范

    它不仅有助于提高代码的可读性和可维护性,还能促进团队间的协作效率,减少误解和冲突。本文将深入探讨若帮科技公司Android部门的编码规范,主要涵盖命名基本原则、编程基本命名规范、分类命名规范以及Javadoc注释的...

    android编程规范

    - 唯一性:确保不同实体的名称不会混淆,避免命名冲突。 - 合适的长度:名称既要简明扼要,也要具备足够的描述性。 2. **命名基本规范** - 避免模糊或难懂的名称,如避免使用xxK8等不明确的命名。 - 类属性的...

Global site tag (gtag.js) - Google Analytics