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

请大大侠详细解释一下override和overload的概念,以及多态的概念

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

    本文导语:  请大大侠详细解释一下override和overload的概念,以及多态的概念 | 方法重载(overload) 方法重写(override) ------------------------ 方法重载的规则是: 一、参数列表必须不同,个数的不同完全可以...

请大大侠详细解释一下override和overload的概念,以及多态的概念

|
方法重载(overload)
方法重写(override)
------------------------
方法重载的规则是:
一、参数列表必须不同,个数的不同完全可以,如果个数相同则参数类型的不同不能引起歧意,例如int 和long,float和double就不能作为唯一的类型不同;
二、返回值可以不同,但是不能是重载时唯一的不同点(这点和c++中不同,c++中返回类型必须一致)。
-----------------------
方法重写发生在类继承时,子类可以重写一个父类中已有的方法,必须在返回类型和参数列表一样时才能说是重写,否则就是重载,java中方法重写的一个重要而且容易被忽略的规则是重写的方法的访问权限不能比被重写的方法的访问权限低!
重写的另一个规则是重写的方法不能比被重写的方法抛弃(throws)更多种类的异常,其抛弃的异常只能少,或者是其子类,不能以抛弃异常的个数来判断种类,而应该是异常类层次结果上的种类。

|
1. override / overload
假如有
class A {
   void m1() {..}
   protected void m2() {System.out.println("m2() of A");}
   public void m3() {...}
}

那么
class SubA extends A {
   //这是重载
   void m1(String s) {..}
   
   //这是重构(重写/覆写)
   protected void m2() {System.out.println("m2() of SubA");}

   //这是错误的
   // void m3() {...}
}

2. 多态

interface I {
   void testM();
}

class Imp1 implements I {
  public void testM() {
    System.out.println("i am Imp1");
  }
}

class Imp2 implements I {
  public void testM() {
    System.out.println("i am Imp2");
  }
}

public class TestCls {
  public static void test(I itf) {  //注意这里的参数类型是接口
    itf.testM();
  }
  public static void main(String[] args) {
    Imp1 i1 = new Imp1();
    Imp2 i2 = new Imp2();
    
    //注意,这里可以传任何实现了接口I 的类的实例
    test(i1);  // print: i am Imp1
    test(i2);  // print: i am Imp2
  }
}

虽然test(I itf)参数接收类型为I,但是
test(i1) test(i2)输出结果却根据具体实现而不同,这就是多态的体现


具体,参考thinking in java

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 各位大侠,本人是新手上路,经理马上让做palm,我可是从0学起!有没有那位大侠给我介绍一点经验和好的技术论坛,谢了!
  • hotenM(CMP)大侠等EJB大侠进来!小问题请教!
  • 请教大侠,怎么选开发学习板?
  • 大侠请援手:有关动态连接库。
  • 写过BBS的大侠看过来!
  • 请各位大侠推荐两本Solaris的经典书籍?
  • 各位大侠,求助Linux下关机
  • 大侠们,我是新手,请教怎么判断串口是否有连接
  • 想各位大侠求教了,为什么我的jdbc驱动不支持absolute这个方法呢?
  • 数据恢复, 求大侠帮助, 急等!!!!!!!
  • 各位大侠,给点意见
  • JSP+数据库文本存取中的换行问题,请教大侠
  • 各位大侠:lock 命令怎么用?
  • 关于session方面的问题!哪位大侠帮帮忙!?
  • 各位大侠,那有JBuilder书down? 那有PDF格式文件的阅读器?
  • 各位大侠,还有一问题请教,如下:
  • 请“路人甲”大侠进来来看看。。。多谢了。。
  • 请各位大侠介绍几本 UNIX 的书籍
  • solaris,请大侠帮忙!
  • 哪位大侠能提供一些Motif的电子书?


  • 站内导航:


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

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

    浙ICP备11055608号-3