永发信息网

java问题,很急的,====

答案:6  悬赏:50  手机版
解决时间 2021-07-31 09:33
  • 提问者网友:浪荡绅士
  • 2021-07-31 05:58

public static void main(String[] args)

{

A a=new B();

B b=(B)a;

C c=new A();

D d=(D) c;

}

里面的B b=(B)a; 这个()是什么意思,申明对象是不是 类名 名称=new 类名()嘛,

最佳答案
  • 五星知识达人网友:北城痞子
  • 2021-07-31 06:05

A a=new B();——用A对象new出一个B的对象,可以判断出B继承于A,或者实现了A的接口。


B b=(B)a;——把封装了B类的a对象强制转换成B对象,JAVA多态的标准体现。


C c=new A();——用C对象new出一个A的对象,可以判断出A继承于C,并且根据第一行代码,判断出A不是接口,至少是一个类,也可能是抽象类。


D d=(D) c;——把封装了A类c对象强制转换成D对象,又一次用到了多态。



从上面几句代码可以判断出:D是最大的父类或者接口,C继承或实现了D,而A继承于C,B又继承于A。A和B可以被直接new出来,就说明他们至少是一个实体类。C可能是抽象类。



以上,本人拙见,有错请指出。

全部回答
  • 1楼网友:猎心人
  • 2021-07-31 09:34

根据你的程序可以判断出:

C类继承了D类

A类继承了C类

B类继承了A类

有继承就有多态,所谓多态就是假如B类继承了A类,那么就有 A a=new B(); B b=new B();

当A a=new B(); 态 要回到B b=new B();态 时,必须强制转换。 b=(B)a;

  • 2楼网友:duile
  • 2021-07-31 08:52

里面的B b=(B)a; 是将a对象转化为B类型,为什么这样做,楼上的都说的很清楚了

  • 3楼网友:蕴藏春秋
  • 2021-07-31 08:11

强制类型转换

  • 4楼网友:孤独入客枕
  • 2021-07-31 07:40
A a = new B(); 这是java多态的表现! 你上面那个a是A类型的。 B b = (B)a;这行是将A类型的a强制转化为B类型。 申明对象是你上面讲的那样子。不过多态就有点区别了,如果一个类继承了另一个类,就像你上面的B类继承了A类,就可以使用A a = new B();来创建对象了。另外,A也可以是个接口。你看看java的多态吧,到时你就完全明白了。
  • 5楼网友:醉吻情书
  • 2021-07-31 06:30
强制类型转换,把你声明的A类型的a强制转换成B类型了。你应该用到了多态。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯