在Java中,一個(gè)類可以實(shí)現(xiàn)一個(gè)接口,同時(shí)也可以繼承一個(gè)抽象類。這兩者并不沖突。實(shí)現(xiàn)接口和繼承抽象類是面向?qū)ο缶幊讨械膬煞N不同的概念,它們可以同時(shí)存在于同一個(gè)類中。
實(shí)現(xiàn)接口:實(shí)現(xiàn)接口是指一個(gè)類實(shí)現(xiàn)了某個(gè)接口所定義的所有方法。實(shí)現(xiàn)接口的目的是為了遵循接口的契約,從而實(shí)現(xiàn)多態(tài)性。一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。
繼承抽象類:繼承抽象類是指一個(gè)類繼承了另一個(gè)抽象類。抽象類是不能直接實(shí)例化的,它通常包含一些抽象方法(沒有具體實(shí)現(xiàn)的方法)和具體方法。子類繼承抽象類后,需要實(shí)現(xiàn)抽象類中的所有抽象方法。一個(gè)類只能繼承一個(gè)抽象類。
當(dāng)一個(gè)類同時(shí)實(shí)現(xiàn)一個(gè)接口和繼承一個(gè)抽象類時(shí),它需要實(shí)現(xiàn)接口中定義的所有方法,同時(shí)還需要實(shí)現(xiàn)抽象類中定義的所有抽象方法。這樣的類被稱為抽象類與接口的實(shí)現(xiàn)類。