包裝 -- 對外隱藏特徵和行爲,內部實現細節 封裝有利於程序的安全
-- 使用private修飾符私有化類的屬性和方法
-- encapsulation
-- 隱藏對象中的字段
-- 提供公共的操作方法
-- 對輸入的值進行限制
--對封裝的屬性提供getter() 和 setter()方法
-- 只有getter()方法無 setter() 的屬性爲只讀屬性
-- 只有setter()方法無getter() 的屬性爲只操作屬性
-- 封裝包括 屬性 和方法
-- 包括私有化屬性和方法
-- 提供公共的接口
-- 限制數據的訪問
***************************************
訪問修飾符
-- public
-- private
-- protected --有關係 子類 同一個包才能夠用
-- default -- 默認 沒寫就是默認
繼承
-- 繼承就是將程序中共同的特徵和行爲抽取出來建立一個類,使其他類可以沿用此類中的屬性和方法。這不僅僅可以減少程序中的重複代碼,而且易於程序擴展
-- 提供子類可以沿用父類的某些行爲和特徵的一種方式,在程序中使用繼承,有利於程序的擴展。
-- 使用關鍵字extends進行繼承
-- 子類沿用父類的某些屬性或方法的一種方式,同時有利於子類的擴展
-- 特點
--1、不能繼承私有的屬性和方法,構造方法也不能夠繼承
--2、一個類有且只有一個父類(繼承的單一性)
--3、繼承具有傳遞性
--4、父類類型可以指向子類對象,但是隻能使用父類類型可以使用的屬性和方法
Persion persion = new Child(); persion只能夠調用Persion類中的屬性和方法
--5、子類可以擁有和父類一樣的方法,具體調用哪個方法由對象的實際類型決定
extends 方法的重寫 具體調用哪個方法由new後面實例化的對象決定
--6、子類類型到父類類型可以自動類型轉換
父類類型到子類類型需要強制轉換(父類類型實際上是一個子類對象纔可以使用)
Animal animal = new SmallMonkey();
Monkey monkey = new SmallMonkey();
animal(大) 轉換成 monkey(小)時候可以強制轉換 因爲他倆作爲父類 實際上都是指向子類SmallMonkey的對象
--7、區分父類對象和子類對象使用關鍵字:this 和 super
--8、this() super() 表示構造方法 ,沒有參數表示無參構造器 ,帶參表示帶參構造器
每個子類的構造方法都默認的調用了父類的無參構造方法
當父類沒有無參構造器時,子類必須顯示調用父類有的構造方法
--9、子類中調用父類的構造方法時關鍵字super()必須放在第一行
--Object 是所有類的父類 所有類都直接或者間接的繼承與object
-- 當類後沒有關鍵字extends時候 就隱式的調用Object類
-- final
final修飾的類不能夠被繼承
final修飾父類中的方法不能夠被重寫
final修飾的變量表示常量 值不能夠被修改
******************* 多態 接口***********************
-- 多態的實現
-- 多態是指一個對外接口,多種實現方式,即一個接口使用不同的實例執行不同的操作,在Java中多態有兩種表現形式,方法重載overload 和 重寫 override
--方法的重寫 和 方法的重載
--重載:方法名相同 參數列表不同
-- 方法重載應在同一類中
-- 重載方法名稱相同 參數列表不同
-- 方法的返回值不作爲方法重載的區分條件
-- 重寫
-- 分別存在於父類和子類當中
-- 子類和父類方法名相同 返回類型相同
-- 重寫的返回類型不能夠比父類返回類型大 返回類型爲引用類型
-- 子類和父類的方法參數列表相同
-- 子類方法修飾符範圍不能夠比父類小
******************* 抽象類 **********************
抽象類
-- 抽象類
-- 抽象類作用類似於模板,其目的是方便開發人員根據抽象類的格式來修改和創建新類
-- 抽象類用於繼承,有利於程序的拓展
-- 定義抽象類 abstract
-- abstract 定義的方法爲抽象方法
abstract class Book(){
public abstract void getBookName();
}
-- 特點
-- 匿名類 (定義了匿名類來實現抽象類) TestAbstract tAbstract = new TestAbstract() {};
-- 抽象類可以定義構造方法,但是構造方法不能夠被實例化 (上面例子是匿名類實現抽象類)
-- 可以擁有非抽象類中的一切
-- 抽象類中可以有抽象方法 (使用abstract關鍵字修飾的方法,且沒有方法的具體實現)
-- 存在抽象方法的類一定是抽象類 (接口中存在抽象方法,但是接口不是抽象類)
-- 子類繼承抽象類必須實現其抽象方法,除非子類也是抽象類就不必實現
-- 抽象方法
-- 抽象方法不能夠以static 和 final private protected修飾
-- static 修飾的是類所有 實例化時候重寫抽象方法 該方法就屬於實現類的
-- final 屬於終態 無法被重寫
-- private 私有化 訪問範圍最小
******************* 接口 *************************
爲什麼使用接口
-- 彌補繼承的單一性 , 一個類可以實現多個接口
-- 接口實現多繼承
-- 定義
-- 接口就是某個事物對外提供的一些功能的聲明
-- 作用: 利用接口實現多態,彌補Java單一繼承的缺陷
-- 定義接口關鍵字 interface
-- 特點
-- 靜態常量(public static final 可省略)(接口中定義的變量都爲靜態常量)
-- 抽象方法(public abstract 可以省略)
public abstract void takePhotos(); 等效於 void takePhotos()
-- 實現接口關鍵字 implements
-- 實現接口時候必須實現接口全部方法
-- 實現多個接口時候 接口之間使用“,”隔開
-- 接口不支持實現接口(接口中的方法都是抽象方法,如果實現接口 實現的接口就跟抽象方法有矛盾)
-- 接口不能實例化 同時也不能有構造器
Java學習筆記(一)----封裝 繼承 多態 抽象 接口
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.