java接口+Java支持多繼承嗎?
1.接口使用interface(接口)關鍵字修飾
2.接口中的方法默認都是全局抽象方法,即默認public abstract修飾
3.接口不能直接new對象,必須通過new子類創建對象(多態向上轉型)
4.接口的子類(實現類)必須重寫父類的所有抽象方法,除非子類是抽象類或者接口可以不寫
5.接口中不能寫普通屬性,默認為全部靜態常量,即默認public static final修飾
6.接口中不能寫普通方法,原因參考第2條
7.接口中不能寫構造方法,原因參考第5條
8.接口中不能寫靜態代碼塊
9.多態的實現方式不變
10.實現類可以實現多個接口
package com.qfedu.test3;public interface A {void m1();
}
package com.qfedu.test3;public interface B {void m2();
}
package com.qfedu.test3;public interface C {void m3();
}
package com.qfedu.test3;
/*** 一個類實現多個接口* @author **/
public class D implements A,B,C {@Overridepublic void m3() {}@Overridepublic void m2() {}@Overridepublic void m1() {}}
package com.qfedu.test3;public interface Test {public static void main(String[] args) {D d = new D();d.m1();d.m2();d.m3();}
}
11.接口可以繼承多個接口
package com.qfedu.test4;public interface A {void m1();
}
package com.qfedu.test4;public interface B {void m2();
}
package com.qfedu.test4;
/*** 一個接口繼承 多個接口* @author **/
public interface C extends A,B {void m3();
}
package com.qfedu.test4;
/*** 一個類* @author **/
public class D implements C {@Overridepublic void m3() {}@Overridepublic void m2() {}@Overridepublic void m1() {}}
package com.qfedu.test4;public interface Test {public static void main(String[] args) {D d = new D();d.m1();d.m2();d.m3();}
}
簡單面試題:Java支持多繼承嗎?
? 不支持,但是可以通過接口繼承多個接口的方式實現類似多繼承的效果