
因為要用到“顔色”以及“矩形區域”二個枚舉,先把他們抽出來單獨放在CommDef.h檔案中
然後再定義基類Shape,注意:在obj-C中,定義一個類通常分成二部分,一部分是".h"的檔案,用來申明類有哪些成員(也稱為類的定義檔案,類似于接口),另一部分是".m"的檔案,用來提供具體實作
Shape類的申明部分如下:(Shape.h)
Shape類的實作部分如下:(Shape.m)
文法有點奇怪,初次接觸,隻能強迫自己忘記吧。
然後定義子類Circle
申明部分Circle.h
實作部分Circle.m
注:上面展示了在obj-C中如何調用父類的方法[super getColorName:fillColor]
子類Rectangle
實作部分
子類Ellipse
最後看下調用的主函數HelloWorld.m
注:上面的代碼中有一個id的變量,在obj-C中id相當于“任意類型”,意為指向某對象的指針(哪怕你不知道這個對象是什麼類型),總之,如果你不知道某對象的具體類型時,用它就對了。同時我們也看到了,建立一個類的執行個體用“[類 new]”來完成。
最後附上檔案結構圖: