当前位置:  技术问答>java相关

thinking in java and core java的重载问题认我好纳闷

    来源: 互联网  发布时间:2017-04-08

    本文导语:  class Super {    void f()    {    System.out.println("Super.f()");    }   }   public class Sub extends Super {    void f()    {     System.out.println("Sub.f()");    }    void f(int i)      {    System.out.println("Sub.f(int i)"+i); ...

class Super
{
   void f()
   {
   System.out.println("Super.f()");
   }  
}  


public class Sub extends Super
{
   void f()
   {
    System.out.println("Sub.f()");
   }
   void f(int i)  
   {
   System.out.println("Sub.f(int i)"+i);
   }
   public static void main(String[] args)

   {
     Sub sub=new Sub();
     sub.f();
     sub.f(10);
   }

think in java and core java中的都提到了,子类可以重载父类的方法,
而java2 程序员学习指南上说重载必须在同一个类中,
1.我上面的Super.f()和Sub.f(int i )算重载吗?个人认为不算应说这是两个不同的方法?
2.编译时子类会检查f()的类型,在运行时会准确调用相应的方法,上面的
Sub sub=new Sub();改为 Super sub=new Sub();时,编译就有错,这个我想得通,因为编译时会在Super中检查开形式类型,而Super中不提供f(int i).
Sub sub=new Sub();和Super sub=new Sub();有何不同?

|
f();叫覆盖(override)
f(int i);叫重载(overload)

覆盖是父子之间的相同方法
重载是针对同类中的同名方法(参数列表不同)

|
可以算是重载
Super sub= new Sub();
是不会出错的,只要你不调用f(int i)
就不会有问题,派生类中实现的方法在基类中必须有定义
才可以使用你下面的那种运行是对象鉴定

|
1、我也不知道是不是叫重载,反正你的意思我觉得是正确的
2、Super sub = new Sub() 此时你只可以用到Super的接口,当然如果你有在子类中重载了父类的方法,那就会调用子类的方法

|
f();叫重载(override)
f(int i);叫过载(overload)
重载是针对父子关系的,而过载是针对平行关系使用的,过载只是参数列表的重定义,最常用到的过载的例子就是System.out.println。

|
lsm1977说的对。

|
楼主的概念混淆是由于中文书籍中对override和overload的不同译法导致的,
override发生于继承,而overload发生于同一个类定义内

    
 
 

您可能感兴趣的文章:

  • 咨询以下:Thinking in java里,覆写(overriding)和重载(overloading)到底有什么区别?!
  • 早上看到China-Pub已经有<Thinking In C++>英文第2版卖了,而且<Thinking In Java 2E>也在预告了,强烈期待中......
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • 请大家评价一下Thinking in Java第二版(中文)这本书如何,是否适合JAVA初学者?
  • 哪里还有Think in java!答者给分,谢谢
  • 《Thinking in Java》VS《The Java Programming Language》
  • 看完了core java1和thinking in java,看什么?
  • Think in Java
  • 高分征集Think in java(第2版)中文电子版
  • Thinking In Java 的第一个程序问题
  • 考SCJP275一定要看<Thinking In Java>吗?
  • 我学java,已经看了《thinking in java》,编了一些程序,现在该看什么书呢?大家推荐一下
  • 从哪能下载Thinking in java 一书中的程序代码?
  • THINKING IN JAVA 第二版(中文)(经典之作品出版了)
  • 菜鸟问JAVA高手,对thinking in Java!有何心得!
  • Think in java 源码
  • 请问《Think in Java》的作者的网站网址是多少?
  • 请问哪里可以下载thinking in java 中的源代码?
  • THINK IN JAVA版本问题!
  • thinking in java 中提到的一本书
  • 急需《thinking in java》电子书!!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 《think in java》出第三版了!!!!
  • think in java书店有卖吗?
  • 有人能提供THINK IN JAVA 第二版的简体中文下载吗?
  • 关于Think in Java一书
  • Think第二版发布了!(本人开发的C语言跨平台开发库)
  • 我在Thinking in Java中遇到的Jni问题!
  • thinking in java se基本看完了,想搞jsp,请推荐经典书
  • 我记得有位大哥发给我一份中文版的think in java,能不能重发一次,谢谢!
  • 关于<<thinking in java>>中的源代码执行的问题
  • 看了《Think in jave》后,该看什么书呀,
  • 谁那有《Thinking in Java》的英文版(或哪有下载)GIVE ME啊!
  • 谁有《thinking in java》中的程序代码?重重有赏
  • 长沙哪里买到 thinking in java ?
  • where is thinking in java to download??
  • win98下可以运行那些jsp server???thinks
  • java in thinking 第一版翻译的真的不能读么?
  • 哪里有THINK IN JAVA 下载呀?(中文的)
  • 请问到哪儿能下载think in java.的电子版。
  • 各位高手,那有think in java 的电子书下载
  • 关于《Thinking in Java》


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3