黑马程序员技术交流社区

标题: 父类和子类 [打印本页]

作者: siegee    时间: 2014-4-28 18:25
标题: 父类和子类
本帖最后由 siegee 于 2014-4-29 00:21 编辑

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

父类的指针为什么可以指向子类?子类可以指向父类吗,为什么?(在oc环境下)
作者: 魅影穿眸    时间: 2014-4-28 19:01
1.如果以一个基础类指针指向一个派生类对象,那么经由该指针只能访问基础类定义的函数
2,如果以一个派生类指针指向一个基础类对象,必须先做强制转型动作,这种做法很危险,也不符合生活习惯,在程序设计上也会给程序员带来困扰。(一般不会这么去定义)

作者: 杨勇    时间: 2014-4-28 19:16
父类对象指针指向子类在oc中是多态的体现。
如有两个类,父类是Person  子类Student继承Person类。
在创建对象时   Person *p=[[Person alloc] init],可以让父类的对象指向子类,即写成 Person *p1=[[Student alloc] init];这个可以理解为“学生是一个人”
但是如果让子类指向父类,即写成Student *s=[[Person alloc] init],理解为“人是学生”,这在语法中是错误的,希望能够帮到你!
作者: siegee    时间: 2014-4-28 19:47
似乎有些明白了;




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2