抽象类和接口异同:
相同:
1,都可以在内部定义抽象方法。
2,通常都在顶层。
3,都不可以实例化,都需要子类来实现。
不同点:
1,抽象类中可以定义抽象方法和非抽象方法,
而接口中只能定义抽象方法。
2,接口的出现可以多实现。
抽象类只能单继承。
也就是说:接口的出现避免了单继承的局限性。
3,继承和实现的关系不一致。继承:is a,实现:like a
综上所述:
如果你想定义的方法全部都是抽象方法那么用接口,否则用抽象类.
而且接口可以多实现,对类的单继承进行了改良.
其实各有利弊,看自己权衡. |