A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Zero霖 中级黑马   /  2014-3-5 22:41  /  1645 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请教各位前辈,用final修饰的方法不能被子类重写,但能被重载吗?

2 个回复

正序浏览
关于final只需要记住三句话就行,1、被定义成final的类不能派生子类2、被定义成final的方法不能够被重写 3、被声明为final的成员变量一经赋值就不能改变.还有就是可以用具体的代码实验一下。。。
final class Father
{
   public void run(int speed){System.out.println("速度是"+speed);}
}
class Son extends  Father
{
   public void run(int speed){System.out.println("速度是"+speed/2);}//方法的重写
}
class Son extends Father
{
   public void run(String place){System.out.println("在"+place“跑”);}//方法的重载
}
编译能通过就是可以,不能通过就是不行。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
final表示最终的意思,它修饰的类是不能被继承的;final修饰的方法能被继承(Math类里就有),但是不能够被重写。其实关系并不复杂,你只需要记住这样一句话:final可用于声明属性、方法和类,分别表示属性不可变,方法不可重写,类不可继承。当然final修饰的方法是可以被重载的

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马