黑马程序员技术交流社区
标题:
大神,继承向上转型和向下转型,不明白,还有就是函数返回对象不明白
[打印本页]
作者:
lovefmylgs
时间:
2014-5-12 02:25
标题:
大神,继承向上转型和向下转型,不明白,还有就是函数返回对象不明白
求指教,比如子类继承父类,向上转型就是父类指向子类引用,他最终是输出什么,是怎样指向的,,
还有就是一个类里面我看他们一个函数是这样写的 void student num ()不懂的是为什么要写返回一个学生,如果不写这个好像也是一个函数啊不要student,不理解,求简单易懂,
作者:
李小新H
时间:
2014-5-12 07:25
没想明白!
作者:
jsjchenlong
时间:
2014-5-12 08:03
你可以把你的代码粘贴出来看看,没有明白你的意思
作者:
最后的希冀
时间:
2014-5-12 08:11
额,首先是第一个问题,在向上转型中,就相当于多态的使用,当调用的是父类的非静态方法时,如果子类重写了该方法,那么就直接执行子类的新方法。
还有第二个问题,void student num (),这个具体我也没看懂,void本身就已经声明无返回值,而student是什么?你可以把代码发上来看看
作者:
张斌
时间:
2014-5-16 09:21
是说可以返回一个对象吗?
作者:
wy_heima
时间:
2014-5-16 09:55
首先第一个问题关于对象的上转型对象:
关于上转型对象有以下特点:
(1) 上转型对象不能操作子类新增的成员变量,不能使用子类新增的方法。
(2) 上转型对象可以操作子类继承或隐藏的成员变量,也可以使用子类继承的或重写的方法。
(3) 上转型对象操作子类继承或重写的方法时,就是通知对应的子类对象去调用这些方法。因此,如果子类重写了父类的某个方法后对象的上转型对象调用这个方法时,一定是调用了这个重写的方法。
(4) 可以将对象的上转型对象再强制转换到一个子类对象,这时,该子类对象又具有了子类的所有属性和功能。
第二个问题我也没看懂
作者:
Seraphim
时间:
2014-5-16 16:23
函数的命名方式是:
权限+返回类型+函数名+(参数列表)+{函数体}
除了构造函数,每个函数有且仅有一个返回类型(基础数据类型、自定义数据类型等等),void表示该函数没有返回值,所以void student num()这个函数是错的……不知道你的那个程序是什么样的,发出来看看吧
作者:
不羁的风1230
时间:
2014-5-16 21:13
向上转型相当于是一个多态,如果是非静态的方法那么在编译时看等号的左边(父类),在执行时看等号右边的内容(子类),如果是静态的,再编译和执行时都是看等号左边(父类),student这个你最好是把代码贴出来
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2