1.接口
对接口的使用是通过关键字 implements
接口只能定义常量
子类必须实现接口定义的所有方法
接口只能定义不能实现该方法
接口没有构造函数
接口中的方法和实现它的类默认都是public类型的
2.抽象类
对抽象类的使用是通过关键字extends
不能被实例化,可定义子类必须实现的方法
子类必须定义父类中的所有抽象方法,这些方法的访问控制必须和父类一样
如果一个类中有一个抽象方法,则该类必须定义为抽象类
抽象类可以有构造函数,但是不能被实例化
抽象类中那个的方法可以使用private,protected,pubic来修饰
一个类可以同时实现多个接口,但一个类只能继承一个抽象类
===================================================
那什么时候用接口,什么时候用抽象?
接口定义的是方法的一些规范,而抽象类定义的是类的模板。
接口中只能声明方法,但是不能定义具体的方法
抽象类中可以声明抽象方法,但是同时也可以具体去实现一些方法,但是抽象类不能被实例化
所以如果你想对类的方法定义一些规范的同时也想赋予这个类一些具体实现方法,那么就用抽象。
如果你只想定义一个类的规范,那就用接口
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。