1、上溯造型(upcasting):把衍生型別當作他的基礎型別處理的過程
基礎型別shape有方法draw, erase等方法,circle,line,********等型別是shape的衍生型別,函式dostuff對基礎型別物件做如下處理:
void dostuff(shape s){
s.draw();
s.erase();
這個函式也能很好地處理基礎型別上的衍生型別:
circle c = new circle();
******** t = new ********();
line l = new line();
dostuff(c);
dostuff(t);
dostuff(l);
程式根據傳入的具體衍生型別引數呼叫與衍生型別物件相關的draw和erase方法。
將一條訊息傳送給乙個物件時並不知道對方的具體型別是什麼,但能採取正確的處理方法,這種情況叫做多形性(polymorphism),物件導向語言實現多形性的方法叫做動態繫結。
2、集合:儲存解決問題過程中所生成的物件,在需要的時候自動擴充自己,以適應我們在其中置入的東西。
繼承器(iterator):把集合抽象成乙個序列,允許我們遍歷這個集合,無需關注集合的具體資料結構。
java基礎之一 物件,介面
equals int t1 1 int t2 2 person p1 new person person p2 new person t1 t2 true p1 p2 false p1.equals p2 true此處重點說明string和integer物件 string記憶體位置說明 string...
ruby之一物件比較
ruby物件的比較有三種方式 1 比較兩個物件的值是否相等,返回 true,flase 等於 不等於 a 1 b 1.0 a b true2 比較兩個物件的值 型別是否相等,返回 true,flase eql?a 1 b 1.0 a.eql?b flase a為整數型,b為浮點型 3 比較兩個物件在...
一 物件模型
在ruby程式中,物件僅僅是其大世界的乙個公民而已,除了物件還有其他語言構件,比如類 class 模組 module 以及例項變數 imstance variable 等,元程式設計操控的就是這些語言構件。所有語言構件存在於其中的系統稱為物件模型,它是ruby的靈魂。1 物件由一組例項變數和乙個類的...