什么是抽象类和接口,区别在哪里?
抽象类特性:
抽象类不允许被实例化,只能被继承。也就是说,不能new一i个抽象类的对象
抽象类可以包含属性和方法。方法既可以包含代码实现,也可以不包含代码实现。不包含代码实现的方法叫做抽象方法
子类继承抽象类,必须实现抽象类中所有的抽象方法。
接口特性:
接口不能包含属性(也就是成员变量)
接口只能声明方法,方法不能包含代码实现
类实现接口的时候,必须实现接口中声明的所有方法
抽象类和接口的作用分别在哪里?
抽象类更多的是为了代码复用,而接口就更侧重于解耦。
抽象类和接口的应用场景区别?
表示一种is-a的关系,并且是为了解决代码复用的问题,我们就用抽象类;如果要表示一种has-a关系,并且是为了解决抽象而非代码复用的问题,我们就用接口。