xh410117 2016-04-05 08:47 采纳率: 40%
浏览 1417
已采纳

Objective-c重写问题,求指点

oc中的重写是怎样的呢?
子类继承了父类,然后重写父类的方法,父类里的方法没有被覆盖掉啊

//这是第一个类
 @interface Person : NSObject
 - (void)work;
 @end

 @inplementation Person
 - (void)work
 {
     NSLog(@"工作");
 }

 //这是第二个类
 @interface Student : Person
 @end

 @implementation Student
 - (void)work
 {
NSLog(@"该休息了");
}
@end

//main函数
int main()
{
        Person *p = [[Person alloc] init];
        [p work];//这一行打印出的是父类方法,是“工作”
        Student *s = [[Student alloc] init];
        [s work];//这一行打印出来的就是重写后的方法,是“该休息了”
        [p work]//这一行打印出来还是父类的“工作“啊,没有被覆盖为”该休息了“,
        //我就想问,[s work];这一行运行过后,父类里面的NSLog照样还是“工作”啊,并没有被覆盖为"该休息了'
}
  • 写回答

1条回答 默认 最新

  • LUCKEYMAN 2016-04-05 09:02
    关注

    子类继承自父类,拥有work方法,重写会覆盖父类的方法,但,这边的覆盖只是针对子类而言,父类并不会被改变。父类可以有很多个子类,子类只能有一个父类。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?