请描述抽象类和接口类的区别和联系?

返回Python面试题汇总目录(全)

(1) 抽象类

规定了一系列的方法,并规定了必须由继承类实现的方法。由于有抽象方法的存在,所以抽象类不能实例化。可以将抽象类理解为毛坯房,门窗、墙面的样式由你自己来定,所以抽象类与作为基类的普通类的区别在于约束性更强。

(2) 接口类

与抽象类很相似,表现在接口中定义的方法,必须由引用类实现,但他与抽象类的根本区别在于用途:与不同个体间沟通的规则(方法),你要进宿舍需要有钥匙,这个钥匙就是你与宿舍的接口,你的同室也有这个接口,所以他也能进入宿舍,你用手机通话,那么手机就是你与他人交流的接口。

(3) 区别和关联

  • 接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类中可以有非抽象方法。抽象类是声明方法的存在而不去实现它的类。

  • 接口可以继承,抽象类不行。

  • 接口定义方法,没有实现的代码,而抽象类可以实现部分方法。

  • 接口中基本数据类型为 static 而抽类象不是。

  • 接口可以继承,抽象类不行。

  • 可以在一个类中同时实现多个接口。

  • 接口的使用方式通过 implements 关键字进行,抽象类则是通过继承 extends 关键字进行。

发表评论

后才能评论