多型:
多型指的是任何方法都可以引用,繼承層次中高層的方法(即子類可以引用,繼承父類身上的方法),其中,方法的多型性取決於你是在哪個類的例項中引用它。
下面是一段偽**:
class vehicle
drive()
}class car inherits vehicle
}class speedboat inherits vehicle
pilot()
}
問題:最後乙個子類中的pilot() 方法繼承的這個方法drive()需要呼叫乙個方法ignition() ,而這個方法在父類vehicle和子類speedboat中都有,用的是哪乙個呢?
答:如果在這個speedboat子類的例項中呼叫,那麼使用的就是這個子類中的 ignition() 方法,如果直接例項化那個父類,那麼使用的就是父類中的 ignition() 方法 。這裡的呼叫邏輯類似於原型鏈,需要先在自身上找有沒有這個方法,如果沒有的話就到父類上找。
super
在子類(而不是它們建立的例項物件!)中,子類也可以相對引用它繼承的父類,這種相對引用通常被稱為 super。
圖中的foo代表父類,bar代表子類,而旁邊是它們的例項,在bar類中可以通過(super)訪問父類中的方法,注意:子類得到的僅僅是繼承自父類行為的乙份副本,在子類中重寫的方法並不會影響父類中原有的方法(類的繼承其實就是複製)。
在js中的實現方法:
這裡書的作者稱其為混入:
function mixin( sourceobj, targetobj )
}return targetobj; }
var vehicle = ,
drive: function() };
var car = mixin(
vehicle, } );
這種複製方法複製的是引用型別的引用和基本型別的值,所以其實 ignition 屬性兩個物件呼叫的是記憶體中的同乙個函式。
下次學習過程中有機會再更新。
JS中的函式初識
首先我們要了解函式是單執行緒的。函式分為兩部分 建立函式和執行函式。並且每一次執行函式都有執行結果。函式是指一段在一起的可以做某一件事兒的程式,也叫作子程式 oop 中的方法。其實我們就可以認為函式是實現某一功能的方法。接下來我們先從建立函式說起吧。建立函式 函式分為函式名和函式體 首先會在當前作用...
初識python中的類與物件
在生活中,我們走在路邊,看到一輛車,大腦中首先想到的是 這是一輛車,然後才是這是一輛什麼牌子的車 在這裡,我們就用到了程式設計中的類的概念。同樣的,看到一條小狗,也會先想到這是一條狗,然後會想到這是一條什麼品種的狗。在程式設計中,把同一類的事物叫做類,把這個類裡所共有的特徵總結歸納並定義出來,就是類...
初識c 的類
前言 c 所做的最重要的改進就是提供了類。類就體現了c 物件導向程式設計 oop 的特性,類是一種將抽象轉換為使用者定義型別的c 工具,它將資料表示和操縱資料的方法組合成乙個整潔的包。類的組成部分 類中的訪問許可權的總結 如何定義和宣告乙個類 include using namespace std ...