1. 程式人生 > >封裝、繼承重寫、抽象類

封裝、繼承重寫、抽象類

1.封裝
(1)封裝的概念:隱藏了實現細節,還要對外提供可以訪問的方式。便於呼叫者的使用。這是核心之一
(2)使用一個Java中的關鍵字也是一個修飾符 private(私有,許可權修飾符)。只要將Person的屬性和行為私有起來,這樣就無法直接訪問
(3)隱藏後,還需要提供訪問方式。只要對外提供可以訪問的方法,讓其他程式訪問這些方法;同時在方法中可以對資料進行驗證。一般對成員屬性的訪問動作:賦值(設定 set),取值(獲取 get),因此對私有的變數訪問的方式可以提供對應的 setXxx或者getXxx的方法
(4)可以在成員變數名前面加上this.來區別成員變數和區域性變數(this可以用來呼叫


2.繼承
(1) 繼承:是指在一個現有類的基礎上去構建一個新的類,構建出來的新類被稱作子類,現有類被稱作父類,子類會自動擁有父類可繼承的屬性和方法。
(2)繼承的好處:提高了代表的可維護性;
提高了程式碼的複用性 ;
讓類與類之間產生了繼承關係
(3)繼承的弊端:類與類之間的耦合度過高
(4) 繼承特點:java中類只能夠單繼承,不能多繼承,可以多層繼承 class Yy extends Object {}
class Fu extends Yy{}
class Zi extends Fu {}
所有的類都直接或者間接的繼承了 Object類,Object類稱為祖宗類
(5)繼承的注意事項:1、使用關鍵字 extends 讓類與類之間 產生繼承關係;
2,、父類私有的成員,子類不能繼承,因為根本看不到
3,不能為了繼承某個功能而隨意進行繼承操作, 必須要符合 is a 的關係
蘋果 is a 水果
男人 is a 人
狗 is a 人 ,
這種情況就不能繼承了
(6)繼承中的成員變數關係:
不同名的變數: 子類直接繼承使用
同名的變數:預設訪問的是子類自己的成員變數, 想訪問父類中的同名變數,請使用 super.成員變數;
(7)繼承中的成員方法關係:
不同名的方法:子類直接繼承使用
同名的方法:預設訪問的是子類自己的成員方法,想訪問父類中的同名方法,請使用 super.成員方法();
super : 用來表示當前物件中包含的父類物件空間的
引用呼叫父類的成員變數:super.成員變數;
呼叫方法的成員方法: super.成員方法();
3.重寫

方法重寫(override):指 在子父類中,出現了方法宣告相同的情況,也叫做方法覆蓋,方法複寫
方法重寫的注意事項:1, 子類的方法宣告要與父類相同(返回值,方法名,引數列表===一模一樣)
2, 子類要重寫父類的方法,方法的許可權修飾符不能比父類的更低public 、default 、protected、 privaten
3, 父類私有的方法,子類不能夠進行方法重寫n 方法過載(overload):指 在同一個類中,多個方法名稱相同,它們的引數列表不同(個數不同,資料型別不同)
4.抽象
抽象方法: 方法只有宣告部分,沒有方法體
抽象類: 包含抽象方法的類,一定是抽象類
抽象類不一定含有抽象方法
使用 abstract 修飾的類,是抽象類
抽象類的特點:
1,抽象類與抽象方法都必須使用 abstract來修飾
2,抽象類不能直接建立物件:抽象類中有抽象方法,沒有方法體,無法被執行,所以例項化沒有意義
3,抽象類中可以有抽象方法,也可以沒有抽象方法
4,抽象類的子類:
------a,實現了抽象方法的具體類
------## 標題b,抽象類