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 {
@Override
public void m3() {
}
@Override
public void m2() {
}
@Override
public 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 {
@Override
public void m3() {
}
@Override
public void m2() {
}
@Override
public 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支持多继承吗?
不支持,但是可以通过接口继承多个接口的方式实现类似多继承的效果