在Java中可以用Object定义任何类的对象,OC中也有类似的用法,比如用id定义各种类的对象。在学java的时候问老师,老师说着不是多态,而是子类什么向上转型。我当时说了个多态,还被老师鄙视啦一把,说我没有理解多态。而OC里把父类定义子类的对象叫多态,这下得重整三观啦,求大神指教!!!
啥叫“父类定义子类的对象”?能用一段 java 代码阐释下不?
比如我有一个学生类 Student;学生类的父类是People我要实例化一个对象 在JAVA中
可以这样写 People student = new Student();
在OC中则可以这样写
People *student = [[Student alloc] init];
上面的东西叫多态吗?
@青玉伏案: 你再给我举一个 OC 中你确定是多态的例子。
@Launcher: 子类重写父类的方法这也是多态吧
@青玉伏案: “子类重写父类的方法” —— 准确的讲重写是实现多态的一种方式。
@Launcher: 请问多态都有哪些实现方式呢?方法的重载是蛮?THX~
@青玉伏案: 你上课没听讲吗? http://baike.baidu.com/view/126521.htm
@Launcher: 大哥,我也会百度,就是跟着一个有十多年经验的Java程序员上SSH课时,他
"父类定义子类的对象不是多态"我不太赞同,所以就问一下!
@青玉伏案: 这是你要问的,我以为你不会百度。我想问的问题是:
你是不是把语句“People student = new Student();”定义为“父类定义子类的对象”?
@Launcher: 嗯嗯!!也许是我的表达有问题,请问大神那“People student = new Student();”应该称作什么呢?谢谢~!
@青玉伏案: 你这个问题问的是“构造函数”能否体现多态,我这样翻译你的问题,你能理解不?
@Launcher: 嗯嗯!!似乎有些懂了!!非常感谢!!
多态就是调用同一个引用时能执行不同的操作.这就是多台了
同一个引用?能给举个例子吗?谢谢!!
@青玉伏案: 父类引用可以指向子类对象,这个明白不?父类的同一个方法A()
在不同子类中有不同实现.这时这个父类引用就能只要指向不同的子类对象程序就能执行不同的操作.
这个就是多台的实现了
@吴瑞祥: 嗯嗯!!懂了!!THX!!!