黑马程序员技术交流社区
标题:
继承的性质有点模糊
[打印本页]
作者:
15342193033
时间:
2014-12-28 09:37
标题:
继承的性质有点模糊
我想问一下,A继承B的话,B里边所有的属性和方法A都可以直接用吗?用的时候不需要再声明了吧?那要是不想用B里边的值还可
以对他进行修改吗?修改后影响B里边的值吗?
比如:
@interface Animal :NSObject
{
int _age;
}
-(void)setAge:(int)age;
-(int)age;
@end
@implementation Animal
//方法的实现
-(void)setAge:(int)age
{
_age = age;
}
-(int)age
{
return age;
}
@end
@interface Dog :Animal
@end
@implementation Dog
@end
比如Animal里有_age,我要是想在main函数里直接让Dog访问它没事吧?
让
int main()
{
Dog * d = [Dog new];
Animal * a = [Animal new];
[d setAge:10];
NSLog(@"age=%d",[d age]);
NSLog(@"age=%d",[a age]);
}
这样输出来的值一样吗?
作者:
zhaozigeng
时间:
2014-12-28 10:27
输出来的值是一样的.面向对象的概念是,对事物进行分类,分类的基础是抽象,将相同的属性和方法进行抽象形成一个超类,当派生类继承超类时,派生类也继承了超类中的属性和方法.
作者:
chasedream
时间:
2014-12-28 10:34
肯定不一样,第一个是10,第二个为0.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2