天天看點

面向對象_抽象類和接口的差別

抽象類和接口的差別:(面試題)
A:成員差別
  抽象類:
    成員變量:可以變量,也可以常量
    構造方法:有。
    成員方法:可以抽象,也可以非抽象
  接口:
    成員變量:隻可以常量
    成員方法:隻可以抽象
    
B:關系差別
  類與類
    繼承關系,可以單繼承,也可以多層繼承
  類與接口
    實作關系,可以單實作,也可以多實作
  接口與接口
    繼承關系,可以單繼承,也可以多繼承
    
C:設計理念差別
  抽象類
    被繼承展現的是:"is a"的關系。抽象類中定義的是該繼承體系的共性功能。("is a" = 什麼是什麼)
    例:狗是動物
  接口:
    被實作展現的是:"like a"的關系。接口中定義的是該繼承體系的擴充功能。("like a" = 什麼象什麼。它本身并不具備,但是随着什麼什麼發展添加了新東西,這叫接口[相當與電腦上的usb接口,隻要按照接口來,就能連接配接])      

is-a關系和is-like-a關系

繼續閱讀