</pre><pre name="code" class="java">interface IA{
void say();
}
interface IAA{
int UI=4;
void hai();
}
class A{
int i=1;
public void hai(){
System.out.println("A");
}
}
class B extends A implements IA,IAA{
int i=2;
int UI=5;
public void say(){
System.out.println("say B");
}
public void hai(){
System.out.println("hai B");
}
}
public class extend{
public static void main(String args[]){
B b = new B();
b.say();
System.out.println(++b.UI);
IA a = new B();
a.say();
//!System.out.println(++a.UI);
IAA aa = new B();
System.out.println(aa.UI);
}
}
輸出:
say B
6
say B
4
如上。
需要注意的幾點:
- 放入接口中的任何域都是自動public static final的。放入接口中的方法自動是public abstract 的。所以代碼中註釋部分//!System.out.println(++a.UI);是編譯不過的。
- 一個類可以實現多個接口,用逗號隔開implements IA,IAA
- 不管是繼承還是接口實現,覆蓋的只是方法,父類中聲明的域不能被覆蓋。System.out.println(aa.UI);輸出的是IA接口中的UI值