A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© siegee 中级黑马   /  2014-4-28 18:25  /  1006 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 siegee 于 2014-4-29 00:21 编辑

第一次发帖,各位帮帮忙啦

父类的指针为什么可以指向子类?子类可以指向父类吗,为什么?(在oc环境下)

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

3 个回复

倒序浏览
1.如果以一个基础类指针指向一个派生类对象,那么经由该指针只能访问基础类定义的函数
2,如果以一个派生类指针指向一个基础类对象,必须先做强制转型动作,这种做法很危险,也不符合生活习惯,在程序设计上也会给程序员带来困扰。(一般不会这么去定义)

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

回复 使用道具 举报
父类对象指针指向子类在oc中是多态的体现。
如有两个类,父类是Person  子类Student继承Person类。
在创建对象时   Person *p=[[Person alloc] init],可以让父类的对象指向子类,即写成 Person *p1=[[Student alloc] init];这个可以理解为“学生是一个人”
但是如果让子类指向父类,即写成Student *s=[[Person alloc] init],理解为“人是学生”,这在语法中是错误的,希望能够帮到你!

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

回复 使用道具 举报
似乎有些明白了;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马