スーパークラス SuperClassYeh とサブクラス SubClassYeh があります。SuperClassYehにメソッドinheritTestがあり、SubClassYeh でオーバーライドinheritTestします。testSuperAndSelfSubClassYehのメソッドを呼び出して、プログラムの実行を開始します。このメソッドはfromYEH、SuperClassYeh の別のメソッドを呼び出します。では、 SuperClassYehfromYEHを呼び出したいと思います。inheritTestそれ、どうやったら出来るの?を使用すると、 SuperClassYeh ではなく、SubClassYeh で[self inheritTest]呼び出しが行われます。
全体の実行を開始するためのコード フラグメントを次に示します。inheritTest
SubClassYeh *testing = [[SubClassYeh alloc] init];
[testing testSuperAndSelf];
SuperClassYeh のコード フラグメントは次のとおりです。
- (void) fromYEH
{
[self inheritTest]; //Calls the inheritTest in SubClassYeh, not SuperClassYeh
}
- (void) inheritTest
{
NSLog(@"Testing Indicator. Inside SuperClassYEH inheritTest");
}
SubClassYeh のコード フラグメントは次のとおりです。
- (void) inheritTest
{
NSLog(@"Testing Indicator. Inside SubClassYeh inheritTest");
}
- (void) testSuperAndSelf
{
[super fromYEH];
}