多型 繼承 復合

2021-06-29 08:10:37 字數 705 閱讀 5388

//1.為什麼建立的son物件可以給father類的指標賦值?

//《賦值相容規則》可以用父類的指標指向子類的物件。

//@inte***ceson :

father

father *laowang = [[son

alloc] init];        

//在通過物件指標去呼叫方法的時候,我們不看指標是什麼型別的指標,只看指標所指向的物件。

//多型。多型的基礎是可以用父類的指標指向子類物件。

//像我們使用父類的指標指向子類的物件,然後呼叫方法,會自動的根據指標所指向的型別來呼叫相應的方法,這種情況我們叫多型。

1. 繼承(is-a關係) 如 

@inte***ce yourobject:nsobject

@end

[super init];

2. 復合(has-a關係) 在

objective-c中,復合是通過包含作為例項變數的物件指標實現的。

例如,使用乙個pedal(腳踏板)物件和乙個tire(輪胎)物件組合出虛擬的獨輪車。此時應該擁有乙個指向pedal物件的指標和乙個指向tire物件的指標,

@inte***ce unicycle: nsobject

@end

pedal和tire通過復合的方式組成了unicycle,嚴格來講,只有物件間的組合才能叫復合,而基本型別都被認為是物件的一部分。

繼承 or 復合?

django已經連續寫了很多篇,這裡先暫停一下,換換口味,實際上有了之前的簡單介紹,如果有一些web開發基礎的,已經可以開發了。後續我還會寫一些文章進行說明。今天介紹的內容在開發中很有意義,所以拿出來和大家聊聊,希望對大家今後的工作有所幫助。繼承是物件導向的重要概念,是依賴關係的一種,主要用來實現類...

復合,繼承,委託

復合其實是一種 has a 的關係,就是說乙個類裡面有其他類的物件 例如在stl標準庫的實現中,queue裡面有乙個deque template class queue size type size const void push const value type x void pop queue的...

復合優於繼承

public class testhashsetextends hashset override public boolean add e e override public boolean addall collection c public int getcount public static ...