一段java代码的4个问题

Animal是父类,Dog是Animal的子类。1,main后面不是应该是“string[]args”吗,这里的“string[]a”a代表什么2,show方法的参数“A... Animal是父类,Dog是Animal的子类。
1,main后面不是应该是“string[] args”吗,这里的“string[] a”a代表什么
2,show方法的参数“Animal a”,a是Animal的一个对象吗,如果不是a代表什么
3,“a instanceof Dog”Dog是类,和a有什么可比较的呢,这是什么意思呢
4,“Dog dog = (Dog) a”把a赋给了对象dog吗,父类的a怎么又能跟子类的对象的赋值,a到底是干嘛的呢,为什么又能跟类比较,又能跟对象比较?
展开
 我来答
lhj287
推荐于2016-03-19 · 超过13用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:25.4万
展开全部
1,其实是一样的,要这么写也是对的,都是定义一个String[]数组,自身起的名字不一样而已,只是习惯写成String args[],语法上是没有错误的。这里String[]数组的作用是接受运行时外部传来的数据。
2.对,show方法里面的a是表示Animal的对象。就是调用这个方法时必须传一个Animal对象进来,当然也可传Animal子类的对象。因为有多态的存在。
3.a instanceof Dog这句代码就等价如 Dog d=a; 就是说a是否是Dog这个类的实例。
4.把a赋给Dog对象没错。这叫强制转换。这里的a不一定是animal的对象,可以是Animal的子类。很明显这里a是Dog的对象。
4.看来你是多态没学明白了。这些代码其实就是运用了多态而已。好好看看书。
追问
java多态是在哪里体现的?继承派生和接口哪儿吗?
追答
父类/接口 a=new 子类()这就是多态。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
y66901356
2014-09-04 · 超过23用户采纳过TA的回答
知道答主
回答量:67
采纳率:100%
帮助的人:48.2万
展开全部
1、args或者a只是参数的一个名字,只要参数是字符串数组,名字符合java变量命名规则可以随便写。
2、a是一个Animal类型的变量,Animal 是一个父类,Dog是Animal 的子类,传Dog实例给Animal参数是父类引用指向子类对象。
3、instanceof 比较a是否为Dog类的实例。
4、参数是Animal 类型,Dog是Animal 的子类,调用的时候传Dog实例给Animal参数是向下转型,不需要强制转换,但将a变成Dog实例的话是向上转型,所以要强制转换。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dd5a0d8
2014-09-04 · TA获得超过171个赞
知道小有建树答主
回答量:217
采纳率:0%
帮助的人:136万
展开全部
string []args的意思就是main函数需要一个字符串类型的数组,args是数组名,改成其他的也是可以的

在这个地方定义一个a,代表函数的一个形参,可以说是一个形式上的参数的
因为a是Animal类型的 ,首先判断一下a是不是dog类型的,因为Animal包括dog类型,可能a还是cat类型,所以先判断一下

a instanceof Dog这个不是跟dog比较,二是判断a是不是dog类行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卓行天下34
2014-09-04
知道答主
回答量:7
采纳率:0%
帮助的人:5.2万
展开全部
  1. String []args  其实是一个数组参数,args是数组名,我们可以随便定义的。如果作为主函数这个args是唯一可以改变的地方。所以  这个a只是String 类型数组的名称。args其实是从外国的arguments简写来的。

  2. a是Animal类型的一个变量名。就像 int a            a是int类型的一个变量;你这个参数类型是Animal的(如同int类型的参数)。

  3. 不好意思了   只会这么一点。刚学Java一年

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式