今天,我的一个同事突然间问我一个问题:“如果有一个类,实现了多个接口,这些接口里面有形同的方法,会出现什么情况?”。我感觉这个问题挺有意思(薄弱的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()方法,都无法定位到接口中。
分享到:
相关推荐
主要介绍了解决Kotlin 类在实现多个接口,覆写多个接口中相同方法冲突的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
但一个类可以直接实现多个接口,通过实现多个接口可以弥补 Java单继承的不足。 面向接口编程 •接口体现了规范与实现分离的原则。充分利用接口可以很好地提高系统的可扩展性和可维护性。 •接口与简单...
主要介绍了在Vue 中实现循环渲染多个相同echarts图表,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。 3.数据类型之间的转换 如何将数值型字符转换为数字(Integer,Double) 如何将数字...
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 13、sleep() 和 wait() 有什么区别? sleep是线程类(Thread)的...
下例定义了一个 Point 类 ,并且声明了它的两个变量 x、y 坐标 ,同时实现 init()方法 对 x、y 赋初值 。 class Ponit { int x,y; void init(int ix, int iy){ x=ix; y=iy; } } 类中所定义的变量和方法都是类的...
java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java...
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 16、sleep() 和 wait() 有什么区别? sleep是线程类(Thread)...
java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 ...
A、String类 B、StringBuffer类 C、Character类、D、以上都不对 三、判别题 1、 一个类可以生成多个对象,并且这些对象都具有相同的属性。( ) 2、 当运行javac命令对一个java源程序进行编译时,必须...
委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的引用。 是,是一种特殊的委托 5.override与重载的区别 答 : override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,...
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 13、sleep() 和 wait() 有什么区别? sleep是线程类(Thread)的...
一个方法的签名由它的名称以及它的形参的个数、修饰符和类型组成。方法的签名是方法的唯一标识(同一个类中的区别标识)。 方法的重载:是指方法名相同,但参数类型、个数或顺序不同的方法,与返回值无关(同一类或...
Linux 2.4.x的内核中采用了这种技术,利用bonding技术可以将多块网卡接口通过绑定虚拟成为一块网卡,在用户看来这个聚合起来的设备好像是一个单独的以太网接口设备,通俗点讲就是多块网卡具有相同的IP地址而并行连接...
接口可以从多个基接口继承,而类或结构可以实现多个接口。接口可以包含方法、属性、事件和索引器。接口本身不提供它所定义的成员的实现。接口只指定实现该接口的类或接口必须提供的成员。接口可以是命名空间或类的...
重载指的是一个类中具有多个功能相似的函数。重写是指子类继承了父类的方法并且覆盖了子类的方法。 方法重载的规则: a.方法名一致,参数列表中的顺序,类型,个数不同 b.重载的方法与返回值无关 c.重载可以抛出不同...
通过类,你可以创建多个具有相同特征和行为的对象。例如,"汽车"是一个类,而每辆具体的汽车则是该类的实例。 封装: 封装是面向对象编程的重要特征,它将数据和操作数据的方法捆绑在一起,并对外部隐藏对象的内部...
P2P所采用的数据传输方式是用户和用户之间相互连接,一个用户一般和多个其他用户相连接,本接口一般可以和10个其他用户相连接,这样,即使10个其他用户中部分用户的数据传输出现问题,也不会影响到你的数据接收,...
成员方法即类的行为(对数据的操作) 例4.2.1:声明一个日期类Date1 public class Date1 { int year,month,day; //成员变量 public void today( ) { //成员方法 System.out.println("Date is"+year+"/"+month+"/"+...
重载overload的特征:在同一个类中同一个方法名,参数列表不同(个数,顺序,类型) this:关键字,对本类对象的引用,可以调用本类的属性和方法 this(); 对本类对象构造的调用,如果有参则调用有参构造 而且...