一、extends和implements區別
extends是繼承類,implements是實現接口。
類只能繼承一個,接口可以實現多個。
extends繼承父類的時候可以重寫父類的方法,也可以調用父類的非私有方法;implements實現接口,必須實現接口的所有方法。
二、public、private、protected區別
public>protected>default>private
public表明該數據成員、成員函數是對所有用戶開放的,所有用戶都可以直接進行調用
protected對於子女、朋友來說,就是public的,可以自由使用,沒有任何限制,而對於其他的外部class,protected就變成private
default只有本包的當前類可以訪問
private只有本類能訪問,表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有財產神聖不可侵犯嘛,即便是子女,朋友,都不可以使用
作用域 | 當前類 | 同包 | 子孫類 | 其它包 |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
注意:
- 父類中聲明爲 public 的方法在子類中也必須爲 public
- 父類中聲明爲 protected 的方法在子類中要麼聲明爲 protected,要麼聲明爲 public,不能聲明爲 private
- 父類中聲明爲 private 的方法,不能夠被繼承