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];
}