java 子类与父类转换

比如在这个类中:publicvoidpaint(Graphicsoldg){Graphics2Dg=(Graphics2D)oldg;BasicStrokestroke=... 比如在这个类中:
public void paint(Graphics oldg)
{
Graphics2D g = (Graphics2D)oldg;
BasicStroke stroke = new BasicStroke(10);
g.setStroke(stroke);
Line2D line = new Line2D.Float(0,0,20,30);
g.draw(line);}
父类Graphics转换成了子类Graphics2D,并且使用子类的方法,不是说父类不能转换成子类的吗?
展开
 我来答
励丹寒0iQ
推荐于2017-11-24 · TA获得超过369个赞
知道小有建树答主
回答量:288
采纳率:0%
帮助的人:270万
展开全部
A extends B.
B b = new A();
A a = (A) b.
以上是没有问题的。其实在调用paint(Graphics oldg)时所传入的参数oldg本身就是Graphics2D对象。你可以在方法的开始加上System.out.println(oldg);就明白了。
cygist
2012-02-04 · TA获得超过120个赞
知道答主
回答量:81
采纳率:0%
帮助的人:59.5万
展开全部
这个是强制类型转换,如果这个类原本就是子类的,就可以通过强制类型转化为子类,否则就会抛转化异常。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式