区别
- 接口继承用impements,类继承用extends
- 接口没有构造函数,抽象类可以有
- 接口不能声明变量,但是可以声明类常量,类可以声明各种变量
- 接口的方法只有public,抽象类 可以有public protected,private
- 一个类只能继承一个抽象类,但可以继承多个接口
- 抽象类一般用来定义一类实体是什么,他包含了属性,抽象方法和非抽象方法。
- 接口用来定义一类实体能做什么,一般认为他只有抽象方法,常量极少用到。
- 关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。
- 接口是类的原型,一个类必须要遵守其实现的接口;对象则是一个类实例化后的产物,我们称其为一个实例。
接口
- 使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。
- 接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。
- 接口中定义的所有方法都必须是公有,这是接口的特性。
- 要实现一个接口,使用 implements 操作符。类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称。
- 实现多个接口时,接口中的方法不能有重名。
- 接口也可以继承,通过使用extends操作符.
- 类要实现接口,必须使用和接口中所定义的方法完全一致的方式。否则会导致致命错误.
抽象类
- 不能被实例化
- 有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的
- 被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现
- 继承一个抽象类的时候,子类必须定义父类中的所有抽象方法,访问控制不能超过父类
网友评论