这个问题对于我也一直是迷迷糊糊的,特此记录一下
相同点:
1抽象类和接口都不能实例化,除非是它们的子类。
2抽象了和接口中的方法必须被子类实现,不然子类必须是抽象类
不同点:
1抽象是被子类继承,接口是被子类实现
2接口只能对方法进行实现,而抽象也可声明,也可实现
4接口里的方法不能有具体实现,说明接口重设计,抽象重重构
5抽象主要抽象类别,接口主要抽象方法。所以关注事物本质,用抽象类。关注一种操作,用接口
抽象单独特点
1因为抽象类中的抽象方法都是需要实现的,所以抽象方法不能是静态static和私有private
2抽象类可以没有抽象方法,如果一个类有抽象方法,那这个类必定是抽象类