关于一个方法重写的问题

android继承View类重写onDraw方法,为什么重写之后要调用super.onDraw(canvas)这个,我看过了,View类得onDraw方法并没有任何实现(... android继承View类重写onDraw方法,为什么重写之后要调用super.onDraw(canvas)这个,我看过了,View类得onDraw方法并没有任何实现(View中的这个方法是一个空的方法),但是这个super.onDraw(canvas)这个方法不调用的话,会出现一些问题;本段源码:
@Override
public void onDraw(Canvas canvas)
{
canvas.drawColor(paperColor);
canvas.drawLine(0,0,getMeasuredWidth(),0, linePaint);
canvas.drawLine(0, getMeasuredHeight(), getMeasuredWidth(), getMeasuredHeight(),linePaint);
canvas.drawLine(margin, 0, margin, getMeasuredHeight(), marginPaint);
canvas.save();
canvas.translate(margin, 0);
super.onDraw(canvas);
canvas.restore();
}
展开
 我来答
匿名用户
2011-05-05
展开全部
这个类型判断不太科学。。

最好是用instanceof关键字。。

if(o instanceof Person)

即判断o是否是Person类型..

之所以要判断这个..有两个原因..

一..如果不是Person类型..肯定就不相等了..直接返回false..节省时间..资源..

二..避免下一步报错..如果不是的话..强制转换就会报异常..这样写的话..程序很健壮..不会报错..
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wruxrgv
2011-05-09 · TA获得超过1058个赞
知道小有建树答主
回答量:1127
采纳率:0%
帮助的人:721万
展开全部
这个类型判断不太科学。。

最好是用instanceof关键字。。

if(o instanceof Person)

即判断o是否是Person类型..

之所以要判断这个..有两个原因..

一..如果不是Person类型..肯定就不相等了..直接返回false..节省时间..资源..

二..避免下一步报错..如果不是的话..强制转换就会报异常..这样写的话..程序很健壮..不会报错..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
时间片轮转算法
2011-05-02 · TA获得超过1661个赞
知道小有建树答主
回答量:809
采纳率:0%
帮助的人:610万
展开全部
这也能编译么?如果要用super,那么super一定要放在第一句。这个你学java的时候没注意??
追问
书上的例子,当然能编译了,我试过了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式