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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hellotaomi 中级黑马   /  2015-5-28 11:22  /  16355 人查看  /  35 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我都知道被final修饰的方法不能被覆盖,但是能被重载吗,网上我搜索了一下,有说可以的也有说不可以的,那到底可不可以呢?求大神解答!

35 个回复

倒序浏览
我觉得应该可以,覆盖是将之前的方法重写,但是重载是参数或返回值不同。。
回复 使用道具 举报
试了一下,没问题
  1. public class ShiYan {
  2.         public static void main(String[] args)
  3.         {
  4.                 Methods m = new Methods();
  5.                 m.Out1(5);
  6.                 m.Out1("haha", 5);
  7.                
  8.         }

  9. }

  10. class Methods
  11. {
  12.         public final void Out1(int x )
  13.         {
  14.                 System.out.println("Out1 number is "+x);
  15.         }
  16.         public void Out1(String s,int x )
  17.         {
  18.                 System.out.println("Out2 number is "+x+";String is "+s);
  19.         }
  20.         
  21. }
复制代码


结果
Out1 number is 5
Out2 number is 5;String is haha
回复 使用道具 举报
不能                  
回复 使用道具 举报
好像不能
回复 使用道具 举报
应该可以吧,不太清楚
回复 使用道具 举报
Z-CQ 来自手机 中级黑马 2015-5-28 12:38:33
7#
好给力啊,赞一个
回复 使用道具 举报
两个不同的函数,当然可以
回复 使用道具 举报
围观学习
回复 使用道具 举报
学习~~~~~~~~~~
回复 使用道具 举报
  围观学习、
回复 使用道具 举报
围观学习
回复 使用道具 举报
应该可以
回复 使用道具 举报
inal—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的类变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。局部变量声明时可以不赋值,生命周期内只能赋值一次。被声明为final的方法也同样只能使用,不能重写(子类覆盖),可以重载。
回复 使用道具 举报
围观学习~
回复 使用道具 举报
final修饰的最终变量,其实是一个常量,不可以被重写
回复 使用道具 举报
老师讲是最终的.不过它还可以赋值一次,就是在定义final的时候没有赋值,就可以再赋值一次.
回复 使用道具 举报
gaoer 中级黑马 2015-5-28 19:10:22
18#
不明绝力啊~~~~~~~~~!
回复 使用道具 举报
不同的函数
回复 使用道具 举报
看你们的评论把我搞乱了,到底是能呢还是能呢,还是不能
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马