我用一个工具:java Decompiler反编译工具查看jar包源码的时候,出现了以下代码:
1 public abstract interface AbsITest{}
在网上搜索了一下:
我对这种情况作了一下测试:
项目结构以及jre环境:
运行效果:
==================================================
代码部分:
==================================================
/UUUUU_Test/src/com/test/AbsITest.java
1 /**
2 *
3 */
4 package com.test;
5
6 /**
7 * interface的完整表述
8 * @author hongten(hongtenzone@foxmail.com)<br>
9 * @date 2013-7-9
10 */
11 public abstract interface AbsITest{
12
13 public static final String NAME = "Hongten";
14 /**
15 * method of get name
16 * @return name
17 */
18 public String getName();
19 }
/UUUUU_Test/src/com/test/CTest.java
1 /**
2 *
3 */
4 package com.test;
5
6 /**
7 * 普通类可以实现我们定义的两个接口
8 * @author hongten(hongtenzone@foxmail.com)<br>
9 * @date 2013-7-9
10 */
11 public class CTest implements AbsITest,ITest{
12
13 public int getAge() {
14 return ITest.AGE;
15 }
16
17 public String getName() {
18 return AbsITest.NAME;
19 }
20
21 public static void main(String[] args) {
22 CTest cTest = new CTest();
23 int age = cTest.getAge();
24 String name = cTest.getName();
25 System.out.println("name : "+ name + " age : "+ age);
26 }
27
28 }
/UUUUU_Test/src/com/test/ITest.java
1 /**
2 *
3 */
4 package com.test;
5
6 /**
7 * 通常我们所写的interface
8 * @author hongten(hongtenzone@foxmail.com)<br>
9 * @date 2013-7-9
10 */
11 public interface ITest extends AbsITest{
12
13 public static final int AGE = 20;
14 /**
15 * method of get age
16 * @return age
17 */
18 public int getAge();
19 }