关于多态的问题。

YiShouShuQingGe 2012-12-20 09:36:34
学到多态了。

引用变量的两种类型:
编译时类型 和 运行时类型。

这什么意思啊? 我理解不了
...全文
106 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
eviljordan 2012-12-20
  • 打赏
  • 举报
回复
引用 2 楼 abstruct 的回复:
比如:A是B的父类或者B实现的接口 那么我们常常会这样做A a = new B();编译的时候编译器会认为它是A类型的对象,而且B是A的子类或者B实现了A接口,那么理所当然这是没问题的。运行是类型是指在运行期间a这个变量的具体类型。因为我们new的是B这个对象,所以a引用的确确实实是B。 编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不……
++
YiShouShuQingGe 2012-12-20
  • 打赏
  • 举报
回复
引用 2 楼 abstruct 的回复:
比如:A是B的父类或者B实现的接口 那么我们常常会这样做A a = new B();编译的时候编译器会认为它是A类型的对象,而且B是A的子类或者B实现了A接口,那么理所当然这是没问题的。运行是类型是指在运行期间a这个变量的具体类型。因为我们new的是B这个对象,所以a引用的确确实实是B。 编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如……
你回答的太好了,豁然贯通。
安特矮油 2012-12-20
  • 打赏
  • 举报
回复
比如:A是B的父类或者B实现的接口 那么我们常常会这样做A a = new B();编译的时候编译器会认为它是A类型的对象,而且B是A的子类或者B实现了A接口,那么理所当然这是没问题的。运行是类型是指在运行期间a这个变量的具体类型。因为我们new的是B这个对象,所以a引用的确确实实是B。 编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,会出现所谓的多态。因为子类其实是一种特殊的父类,因此java允许把一个子类对象直接赋值给一个父类引用变量,无须任何类型转换,或者被称为向上转型,由系统自动完成。
luckyc2008 2012-12-20
  • 打赏
  • 举报
回复
没听过这两个概念,我只知道有 1.编译时多态,发生在同一类里面,重载,编译时就确定了 2.运行时多态,发生在子类和父类间,重写,运行的时候才确定

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧