1. 程式人生 > >介面和抽象類的關係

介面和抽象類的關係

extends可以理解為全盤繼承了父類的功能
implements可以理解為為這個類附加一些額外的功能
舉個例子,Animal是一個父類,cat,dog,bird,insect都extends了Animal,
但是cat,dog,bird還可以implements比如run,shout這些interface,bird,insect可以implements比如fly這些interface
extends是繼承父類,只要那個類不是宣告為final或者那個類定義為abstract的就能繼承,JAVA中不支援多重繼承,但是可以用介面來實現extends只能繼承一個類,implements可以實現多個介面
比如 class A extends B implements C,D,E 
interface定義一些方法,並沒有實現,需要implements來實現才可用
extend可以繼承一個介面,但仍是一個介面,也需要implements之後才可用 對於class而言,extends用於(單)繼承一個類(class),而implements用於實現一個介面(interface)。interface的引入是為了部分地提供多繼承的功能。 在interface中只需宣告方法頭,而將方法體留給實現的class來做。 這些實現的class的例項完全可以當作interface的例項來對待。 在interface之間也可以宣告為extends(多繼承)的關係。 注意一個interface可以extends多個其他interface。