【发布时间】:2011-10-29 04:17:05
【问题描述】:
我是一名开始为 iPhone 制作应用程序的 Java 程序员。我偶然发现了一个问题。假设以下代码(在 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();
}
}
当在Program 中调用来自House h 的Update 方法(从超类Building 运行)时,来自House 的方法specialAction 被调用,因此控制台打印“特殊操作完成”。我的问题是,xcode 中的以下代码是否等效(在继承和方法覆盖方面,而不是控制台输出方面):
1 级(建筑): .h 文件:
-(void)Update;
-(void)SpecialAction;
.m 文件:
-(void)Update
{
[self specialAction];
}
Class 2(House,继承自Building):
.m 文件:
-(void)SpecialAction
{
NSLog("Special Action Done");
}
可运行类
House* h = [[House alloc] init];
[h Update];
【问题讨论】:
-
发生了什么,当你尝试的时候?
标签: java objective-c inheritance