关于一个方法重写的问题
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();
} 展开
@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();
} 展开
3个回答
2011-05-05
展开全部
这个类型判断不太科学。。
最好是用instanceof关键字。。
if(o instanceof Person)
即判断o是否是Person类型..
之所以要判断这个..有两个原因..
一..如果不是Person类型..肯定就不相等了..直接返回false..节省时间..资源..
二..避免下一步报错..如果不是的话..强制转换就会报异常..这样写的话..程序很健壮..不会报错..
另外,站长团上有产品团购,便宜有保证
最好是用instanceof关键字。。
if(o instanceof Person)
即判断o是否是Person类型..
之所以要判断这个..有两个原因..
一..如果不是Person类型..肯定就不相等了..直接返回false..节省时间..资源..
二..避免下一步报错..如果不是的话..强制转换就会报异常..这样写的话..程序很健壮..不会报错..
另外,站长团上有产品团购,便宜有保证
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个类型判断不太科学。。
最好是用instanceof关键字。。
if(o instanceof Person)
即判断o是否是Person类型..
之所以要判断这个..有两个原因..
一..如果不是Person类型..肯定就不相等了..直接返回false..节省时间..资源..
二..避免下一步报错..如果不是的话..强制转换就会报异常..这样写的话..程序很健壮..不会报错..
最好是用instanceof关键字。。
if(o instanceof Person)
即判断o是否是Person类型..
之所以要判断这个..有两个原因..
一..如果不是Person类型..肯定就不相等了..直接返回false..节省时间..资源..
二..避免下一步报错..如果不是的话..强制转换就会报异常..这样写的话..程序很健壮..不会报错..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这也能编译么?如果要用super,那么super一定要放在第一句。这个你学java的时候没注意??
追问
书上的例子,当然能编译了,我试过了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询