抽象类与接口的区别:
1. 抽象类中可以含有普通方法和变量,而接口中只能含有抽象方法(public abstract修饰)和常量(public final static修饰),不能含有任何实现了的方法。
2. 抽象类中由构造器,而接口中没有构造器。
3. 抽象类只能是单继承,多实现。而接口是多继承其他接口,但是不能实现接口,也不能继承其他类。
4. 抽象类中也可以含有final的方法和静态方法,但是接口不可以。
5. 抽象类继承与Object,接口不能继承于Object.
/**
* 抽象类与接口比较:
* 抽象类:可以有构造方法,普通方法,final修饰的方法,静态方法,普通变量,静态成员变量,抽象类是单继承
* 接口:接口中只能有抽象方法,修饰符是public abstract,不能含有被实现的方法。只能有常量,修饰符只能是public static final
* 接口是多继承(实现)
* @author hezhi
*
*/
public abstract class AbstractDemo01 {
int age ;
static int id ;
//构造方法
public AbstractDemo01() {
}
//静态方法
public static void test() {
}
//final方法:不可被重写
public final void Foo() {
}
public abstract void sayHey() ; //抽象方法没有方法体
}
/**
* 接口修饰符只能是public和abstract
* @author hezhi
*
*/
public interface Interface {
//常量必须赋初值,public static final
int id = 0;
//方法必须是抽象方法,都是public abstract修饰,不写默认
void test() ;
}