php中抽象类和接口有哪些不同点

  • 来源:网络
  • 更新日期:2020-11-05

摘要:php中抽象类和接口的不同点有:1、抽象类可以有属性和普通方法,接口不能有属性和普通方法;2、抽象类中不一定有抽象方法,接口中一定有抽象方法;3、抽象类的抽象方法必须用abstract

php中抽象类和接口的不同点有:1、抽象类可以有属性和普通方法,接口不能有属性和普通方法;2、抽象类中不一定有抽象方法,接口中一定有抽象方法;3、抽象类的抽象方法必须用abstract声明,但接口不需要。

抽象类与接口的相同点:

(推荐视频:java视频教程)

1、都是用于声明某一种事物,规范名称、参数,形成模块,未有详细的实现细节。

2、都是通过类来实现相关的细节工作

3、语法上,抽象类的抽象方法与接口一样,不能有方法体,即{}符号

4、都可以用继承,接口可以继承接口形成新的接口,抽象类可以继承抽象类从而形成新的抽象类

抽象类与接口的不同点:

1、抽象类可以有属性、普通方法、抽象方法,但接口不能有属性、普通方法、可以有常量

2、抽象类内未必有抽象方法,但接口内一定会有“抽象”方法

3、语法上有不同

4、抽象类用abstract关键字在类前声明,且有class声明为类,接口是用interface来声明,但不能用class来声明,因为接口不是类。

5、抽象类的抽象方法一定要用abstract来声明,而接口则不需要

6、抽象类是用extends关键字让子类继承父类后,在子类实现详细的抽象方法。而接口则是用implements让普通类在类里实现接口的详细方法,且接口可以一次性实现多个方法,用逗号分开各个接口就可

二者各自的特点:

抽象类内未必有抽象方法,但有抽象方法的类,则必是抽象类

抽象类内,即便全是具体方法,也不能够实例化,只要新建类来继承后,实例继承类才可以

接口可以让一个类一次性实现多个不同的方法

接口本身就是抽象的,但注意不是抽象类,因为接口不是类,只是其方法是抽象的。所以,其也是抽象的。

相关推荐:php培训