引用问题

kery0818 2007-11-09 07:54:46
class b extends a

a tt=new b(); 可以

Graphics2D g2 = (Graphics2D) g;也可以

为什么啊?

a是b 的父类,而Graphics2D是Graphics的子类啊,为什么两个都行呢
...全文
51 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ftgreat 2007-11-14
  • 打赏
  • 举报
回复
Graphics2D g2 = (Graphics2D)g
使得g2 少了部分g的实例方法
强制类型转换应该是可以的
dddeee 2007-11-14
  • 打赏
  • 举报
回复
a tt=new b();
一定可以

Graphics2D g2 = (Graphics2D)g

这是强制转型,与Graphics2D是否Graphics的子类无关。所以有可能转成功,有可能失败。

如果g所指向的对象正好是Graphics2D的对象或者Graphics2D的子类的对象,则可以成功。如果仅仅是Graphics的对象或者其它的类的对象,会出错。

62,623

社区成员

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

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