抽象类
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
抽象类本身是为其子类提供一个公共的类型,封装子类中的重复内容,定义抽象方法,供子类实现的,子类虽然有不同的实现,但是定义是一致的
接口
说多了接口的功能非常简单,就是规范子类的书写,扩展子类的功能,回调接口中的方法的
共同点:
1.都是上层的抽象层。
2.都不能被实例化。
3.都能包含抽象的方法,来描述类具备的功能,但是没有具体的实现。
不同点:
1.抽象类中可以写非抽象的方法,接口不行
2.类可以实现多个接口,但是只能继承一个类,无论是否抽象
3.抽象类可以有构造器,接口不能有构造器
4.抽象类除了不能实例化外,其他的和普通类并无区别,接口是完全不同的类型