物件導向的三大特徵:封裝性,繼承性,多型性。(重要的事情說多遍)
繼承是多型的前提,如果沒有繼承,就沒有多型。
繼承的主要解決的問題就是:共性抽取。
父類,也叫基類,超類。
子類,也叫派生類。
繼承關係特點:
子類可以擁有父類的內容
子類還可以擁有自己的專有內容。
繼承的關係中,子類就是乙個父類。即子類可以被當作父類看待。
關係:is-a
定義:public class 父類名稱{
public class 子類名稱 extends 父類名稱(){
建立的父類物件,只能使用父類的東西,不能使用子類的。
建立的子類物件,不但可以使用自己的,還可以使用父類的非private方法和變數。
在父子繼承關係中,如果成員變數重名,則建立子類物件時,訪問有兩種方式:
1.直接通過子類物件訪問成員變數,等號左邊是誰,就優先用誰,沒有則向上找。
2.間接通過成員方法訪問成員變數,方法屬於誰,就優先用誰,沒有則向上找。
就近訪問,沒有就向上查詢訪問。
super關鍵字,代表父類的物件。
父子繼承關係中,如果成員方法重名,則建立子類物件時,訪問規則:
建立的物件是誰,就優先用誰,如果沒有則向上查詢。
重寫和過載的區別:
重寫:override,名稱和引數都一樣
過載:overload,名稱一樣,引數不一樣
方法覆蓋重寫的注意事項:
1.必須保證父子類之間方法的名稱相同,引數列表也相同。
@override:寫在方法前面,用來檢測是不是有效的正確覆蓋重寫。
這個注釋就算不寫,只要滿足要求,也是正確的方法覆蓋重寫。
2.子類方法的返回值必須小於等於父類方法的返回值範圍。
3.子類方法的許可權必須大於等於父類方法的許可權修飾符。
擴充套件:public>protected>(default,不是關鍵字)>private
繼承關係中,父子類構造方法的訪問特點:
1.子類的構造方法中,預設隱含super呼叫了父類的構造方法。先父類後子類。
2.子類構造可以通過super關鍵字來呼叫父類的過載的構造方法。
3.只有子類構造方法,才能呼叫父類構造方法。並且super()必須是子類構造方法的第乙個語句。而且只能呼叫一次super();
super關鍵字的用法有三種:
1.在子類的成員方法中,訪問父類的成員變數。super.變數名
2.在子類的成員方法中,訪問父類的成員方法。super.方法名()
3.在子類構造方法中,訪問父類的構造方法。super()
物件導向繼承
using system class class1 class virtualclass class hiddenclass virtualclass class overrideclass virtualclass 結果為 父類 繼承類using system class class1 class...
物件導向 繼承
在原有物件的基礎上,略作修改,得到乙個新的物件,不影響原有物件的功能。即子類不影響父類,子類可以繼承父類的一些功能 復用 function createperson name,createperson.prototype.showname function var p1 new createpers...
物件導向,繼承
物件導向 使用物件時,只關注物件提供的功能,不關注內部實現的細節 特點 抽象 多型 封裝 繼承 組成 方法 函式 屬性 變數 工廠模式 原料 加工 出廠 問題 沒有new 每個物件都創造自己的函式,浪費資源 相當於每次都建立了乙個物件 使用new操作符,替我們建立了乙個空物件 通多this新增屬性 ...