本帖最后由 脸皮猴 于 2014-3-17 08:55 编辑
在OC中,按道理子类是不能和父类有相同变量的是吧,确实按正常走,
- #import <Foundation/Foundation.h>
- @interface Dog : NSObject
- {
- double _tiZhong; //默认是@protected
-
- @public
- int _age; //定义为@public就是有效的
- }
- @end
- @implementation Dog
- - (void)setTiZhong:(double)tiZhong
- {
- _tiZhong = tiZhong;
- }
- @end
- @interface HaBa : Dog
- {
- @protected
- double _tiZhong; //@protected型
-
- @public
- int _age; //定义为@public就是有效的
- }
- - (void)setTiZhong:(double)tiZhong;
- @end
- @implementation HaBa
- - (void)setTiZhong:(double)tiZhong
- {
- _tiZhong = tiZhong;
- }
- @end
复制代码
在上面的代码中,子类HaBa有和父类Dog相同的成员变量!在XCODE是直接报错!
但是!!!!!!!
假如我的HaBa这个类我没有类的申明!只有实现!就不会报错!!!
- @implementation HaBa : Dog
- {
- @protected
- double _tiZhong; //@protected型
-
- @public
- int _age; //定义为@public就是有效的
- }
- - (void)setTiZhong:(double)tiZhong
- {
- _tiZhong = tiZhong;
- }
- @end
复制代码
如上的代码!我想知道为什么勒?按道理HaBa只是没有申明而已!但是也是继承了Dog啊!为什么不会有错勒! |