抽象類和接口兩者的區別,在剛學編程的人眼中,仿佛區別不較著,用誰都可以。可是,這個卻又是經常被問到的問題。那么,抽象類和接口都有哪些區別呢?本文以C#為例進行申明
本文以C#語法為例申明,打開visual studio,建立肆意一個項目類型都行。本文以建立一個節制臺應用程序為例,當項目建立好之后,再建立一個接口類,叫做IAnimal,與一個抽象類Person
 接口只是一組方式的調集,并不克不及包含任何實現,所以,接口是不克不及包含字段的。抽象類在沒有抽象方式的環境下,跟通俗方式不同不大,其他類內部能有的工具,抽象類也都可以有。所以,抽象類是可以包含字段界說的
 接口中的方式只能有方式體,不克不及有具體的實現代碼。抽象類中的方式,若是不加abstract就可以有方式體的實現代碼,一旦加上abstract這個關頭字的方式,就是抽象方式,這樣的方式,不克不及有方式體
 在C#中,一個類可以同時實現多個接口。可是,一個類只能同時實現一個父類,實現抽象的父類也只能是一個,這就是C#中的單擔當原則
 接口并不嚴酷要求里面的方式有不異的共性與聯系,好比,在IAnimal方式中,可以插手物品相關的方式。可是,抽象類凡是是對一種什物的抽象,所以,原則上不會將不相關的方式插手進來,因為,抽象類中界說的方式,子類可以或許主動獲得并利用
 接口中的方式是不克不及帶拜候潤色符的,即使是public也不克不及有,默認就是公開的。抽象類中的方式,可以帶任何拜候潤色符,好比public、private、protected等
 子類實現接口的時辰,必需將接口中的所有方式都實現,無一破例。可是,在抽象類中的方式,若是不是利用abstract潤色的抽象方式,就可以不實現,子類主動獲得這個方式的利用權限
 0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!