抽象類與接口
2014-9-2 9:14:32
1、抽象類(abstract)
特點:
1)抽象類使用abstract關鍵字申明
2)抽象類中可以沒有抽象方法
3)任何一個類,如果它裡面至少有一個抽象方法,那麼這個類就必須被聲明為抽象的
4)抽象方法沒有方法體,直接分号(;)結束,,使用abstract關鍵字申明
5)抽象方法不能被執行個體化,隻能被繼承(extends);子類必須重載抽象類中所有抽象方法
作用:
1)定義一個規範,具有限制性,強制要求子類定義這些方法(父類中的抽象方法)
注意:
1)繼承一個抽象類的時候,子類必須定義父類中的所有抽象方法
2)這些重載的方法的通路控制必須和父類中一樣(或者更為寬松)
例如某個抽象方法被聲明為受保護的,那麼子類中實作的方法就應該聲明為受保護的或者公有的,而不能定義為私有的
3)此外方法的調用方式必須比對,即類型和所需參數數量必須一緻
例如,子類定義了一個可選參數,而父類抽象方法的聲明裡沒有,則兩者的聲明并無沖突。
示例:
2、接口(interface)
接口與抽象類很像,都是限制作用,隻是接口裡面的方法全部是抽象的,且不需要使用abstract申明;
接口使用interface申明
1)接口使用interface申明
2)接口中的方法全部是抽象的,不需要使用abstract申明
3)接口不能被執行個體化,必須被引用(implements,同抽象類中的繼承)使用
4)子類可以引用多個接口,用逗号(,)隔開
1)定義一個規範,具有限制性
2)使用接口(interface),可以指定某個類必須實作哪些方法,但不需要定義這些方法的具體内容
1)要實作一個接口,使用implements操作符
2)類中必須實作接口中定義的所有方法,否則會報一個緻命錯誤
3)類可以實作多個接口,用逗号來分隔多個接口的名稱
4)實作多個接口時,接口中的方法不能有重名
5)接口也可以繼承,通過使用extends操作符
3、多态的應用
對象的多态性是指在父類中定義的屬性或行為被子類繼承之後,可以具有不同的資料類型或表現出不同的行為.
這使得同一個屬性或行為在父類及其各個子類中具有不同的語義.
例如生活中的usb就可以實作多态功能:插入u盤和滑鼠都能正常工作,且完成各自的工作,但内部肯定有一緻的規範定義
示例: