抽象类和接口
相同点
- 都不能实例化创建对象
- 都可以包含抽象方法
两者区别
- 一个类只能继承一个抽象类,而一个类却可以实现多个接口
- 抽象类使用 abstract class 关键字声明,接口使用 interface 关键字声明
- 抽象类可以有实例变量(使用private、public、protected等修饰词修饰),接口只能使用常量(public static final)
- 接口侧重能干什么,强调能力;抽象类侧重怎么做,更多的是代码复用,强调共性
// 接口
public interface Animal {
void eat();
void sleep();
}
// 抽象类
public abstract class Dog implements Animal {
@Override
public void sleep() {
System.out.println("Dog is sleeping");
}
// eat()依然没有实现,Dog还是抽象类
}

浙公网安备 33010602011771号