一、相同: 都可以在内部定义抽象方法。通常都在顶层。都不可以实例化,都需要子类来实现。 二、不同点: 抽象类中可以定义抽象方法和非抽象方法, 而接口中只能定义抽象方法。接口的出现可以多实现,接口的出现避免了单继承的局限性。 抽象类只能单继承。继承和实现的关系不一致。继承:is a,实现:like a