在Objective-C,怎麼會在一個超類來確定,如果一個特定的方法是由它(調用)子(仁)覆蓋叫什麼名字?如何確定一個方法是由一個子類
例如,在下文中,子類Z不重寫方法b爲此基類X會做一些額外的缺省處理。然而,ZY在子類Y中實現了b,因此不需要默認處理。
// base class X
-(void)a
{
// do something
}
-(void)b
{
if("no_child_has_implemented_b") {
// add some default behavior
}
}
// child class Y : X
-(void)a
{
[super a];
}
-(void)b
{
[super b];
}
// child class Z : X
-(void)a
{
[super a];
}
// child class ZY : X
-(void)a
{
[super a];
}
感謝您的詳細回覆。我同時讓它工作,但會審查整體設計,具體針對您列出的可能風險。 – Frans 2012-08-03 17:07:25
很酷。此外,如果您之前沒有看到過,請稍微注意相關說明,查看「打開/關閉」原則:http://en.wikipedia.org/wiki/Open/closed_principle – occulus 2012-08-04 11:15:22