interface Aable{
public void doSomething();
}
interface Bable{
public void doSomething();
}interface ABable extends Aable,Bable{
}
大家讨论一下,如果一个类implements ABable这个接口...
会遇到什么奇怪的事情..还有一种状况是一个类继承一个抽象类和实现一个接口,也存在同名的方法..这个问题在实际开发中估计不常见,纯粹是出于爱好才讨论的..
有大牛出来说说原理吗?
解决方案 »
- RandomAccessFile.seek与skipBytes
- 关于打包后的问题!
- 如何来打包???
- 请问在JAVA中如何添加声音
- 请问如何得到两个Date类型的变量所相差的天数?
- 一个画坐标轴的程序,要改进,请大家帮忙,谢谢!
- java构造函数的用法及意义?
- JNI调用时从c++返回字符串的问题?
- 用APPLET访问数据库,是否要在客户端安装JDBC驱动
- 请教这个问题:Exception in thread "main" java.lang.NoClassDefFoundError: a
- 如何使得Panel不能接收鼠标事件?
- Tomcat用eclipse自带的调试工具只能run,不能debug
(1)假设方法是实现的抽象类的,那么接口中的抽象方法就没有实现,此时编译器会报错。
(2)假设方法是实现的接口中的方法,那么抽象类中的抽象方法没有实现,编译器同样会报错。
但是在编译的过程中,并没有报错,所以排除上面的两种情况,得出一个结论,方法既是父类的,也是接口的。
会遇到什么奇怪的事情..”这个 可以这样吧 :interface Aable{
public void doSomething();
}
interface Bable{
public void doSomething();
}实现类: class AB implements Aable{
Bable getBable(){
return new Bable(); }}“有一种状况是一个类继承一个抽象类和实现一个接口,也存在同名的方法..”interface Aable{
public void doSomething();
}
abstract class Bable{
public void doSomething();
}public class Cable implements Aable{ public void doSomething() {
System.out.println("aaaaaaaaaa");
}
Bable getBable(){
return new Bable(){
public void doSomething() {
System.out.println("bbbbb");
}
};
}
}
这个肯定没问题
我说这个很奇怪而已..没说这样编译有问题我自己的测试结果是:
如果有两个同名的方法,只需要实现这个方法.
不管是用哪个接口的引用,都可以使用这个方法.
这个play()实现了,用Aable或Bable的引用都可以使用这个方法