克零岚 发表于 2013-3-7 15:36
恩呢,编译没问题,查了查,若实现的两个接口的同名的方法返回值类型和参数(参数类型,参数数量,参数顺 ... - package com.itheima.Lession;
- public class ImpleDemo {
- public static void main(String[] args)
- {
- CC c = new CC();
- c.show();
- int aa = c.show(18);
- System.out.println(aa);
- }
- }
- interface AA
- {
- public static final int NUM = 8;
- public abstract int show(int b); //定义了一个show方法,
- public abstract void show();
- }
- interface BB
- {
- public static final int NUM = 81;
- public abstract void show(); //定义了一个show方法
- }
- interface DD extends AA,BB
- {
- public static final int NUM = 89;
- public abstract void function();
-
- public abstract int show(int bb); //和AA接口中一样
- }
- class CC implements BB,AA,DD
- {
- public void show() //类CC实现接口时,实现的是哪个接口的show方法?
- {
- System.out.println(DD.NUM);
- }
- public int show(int a) //带有参数
- {
- return a;
- }
-
- public void function()
- {
- System.out.println("搞一次啊");
- }
- }
- /**这是我在eclipse里面的代码,运行结果是:
- * 89
- * 18
- *
- * 我的推测:
- * 类实现接口中的同名函数时,总是寻找离implements关键字最近的接口来实现。这个你可以
- * 把BB,AA,DD来回调换顺序,在eclipse中可以查看的到(见图片)
- */
- 这是完整的代码
复制代码 |
|