Я Java-программист, который начал создавать приложения для iPhone. Я наткнулся на проблему. Supose следующий код (в Java):
Класс 1 (здание)
public abstract class Building
{
public void Update()
{
specialAction();
}
public abstract void specialAction();
}
Класс 2 (Дом)
public abstract class House extends Building
{
public abstract void specialAction()
{
System.out.println("Special Action Done");
}
}
Класс работоспособности
public class Program
{
public void main(String[] args)
{
House h = new House();
h.Update();
}
}
Когда метод Update
из House h
(запущенный из здания суперкласса) вызывается в Program
, вызывается метод specialAction
из House
, и поэтому консоль печатает «Специальное действие выполнено». Мой вопрос: будет ли следующий код в xcode эквивалентным (с точки зрения наследования и переопределения метода, а не вывода на консоль):
Класс 1 (здание):
.h файл:
-(void)Update;
-(void)SpecialAction;
.m файл:
-(void)Update
{
[self specialAction];
}
Класс 2 (Дом, который расширяется или наследуется от Building
):
.m файл:
-(void)SpecialAction
{
NSLog("Special Action Done");
}
Класс работоспособности
House* h = [[House alloc] init];
[h Update];