方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。  
重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。  
假设在子类中定义某方法与其父类有同样的名称和參数,我们说该方法被重写 (Overriding)  。子类的对象使用这种方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了.

假设在一个类中定义了多个同名的方法,它们或有不同的參数个数或有不同的參数类型或有不同的參数次序,则称为方法的重载(Overloading)。不能通过訪问权限、返回类型、抛出的异常进行重载.

1. Override 特点  
1、覆盖的方法的标志必需要和被覆盖的方法的标志全然匹配,才干达到覆盖的效果;  
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;  
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;  
4、被覆盖的方法不能为private,否则在其子类中仅仅是新定义了一个方法,并没有对其进行覆盖。

2.Overload 特点  
1、在使用重载时仅仅能通过不同的參数样式。比如,不同的參数类型,不同的參数个数,不同的參数顺序(当然,同一方法内的几个參数类型必须不一样,比如能够是fun(int, float), 可是不能为fun(int, int));  
2、不能通过訪问权限、返回类型、抛出的异常进行重载;  
3、方法的异常类型和数目不会对重载造成影响;  
4、对于继承来说,假设某一方法在父类中是訪问权限是priavte,那么就不能在子类对其进行重载,假设定义的话,也仅仅是定义了一个新方法,而不会达到重载的效果。

Overrride实例  
 
class A{  
public int getVal(){  
   return(5);  
}  
}  
class B extends A{  
public int getVal(){  
   return(10);  
}  
}  
public class override {  
public static void main(String[] args) {  
   B b = new B();  
   A a= (A)b;//把 b 强 制转换成A的类型  
 
   int x=a.getVal();   //打印10,这里另一个上转型的问题(见http://blog.csdn.net/gnuhpc/archive/2009/11/05/4773224.aspx)
   System.out.println(x);  
}  
 
}  
 
Overload实例  
 
package com.guonan;  
//Demostrate method voerloading.  
class OverloadDemo {  
void test(){  
   System.out.println("NO parameters");  
}  
void test(int a){  
   System.out.println("a:"+a);  
}//end of Overload test for one integer parameter.  
void test(int a, int b){  
   System.out.println("a and b:"+a+" "+b);  
    
}  
double test(double a){  
   System.out.println("double a:"+a);  
   return a*a;  
}  
}  
class Overload{  
public static void main(String[] args) {  
   OverloadDemo ob = new OverloadDemo();  
   double result;  
   ob.test();  
   ob.test(10);  
   ob.test(10, 20);  
   result = ob.test(123.25);  
   System.out.println("Result of ob.test(123.25):"+result);

override 与overload 的差别的更多相关文章

  1. delphi override、overload、reintroduce的区别-0613.txt

    http://blog.csdn.net/honglixx/article/details/3624934 1.override overload reintroduce的中文叫法是什么? overr ...

  2. 测者的测试技术手册:分清Java的Override和Overload

    Java的Override和OverloadOverride重写:子类对父类的允许访问的方法实现过程重新编写,但是 不可改变返回值和入参.重弄写的规则: 参数列表必须完全与被重写方法的相同: 返回类型 ...

  3. 由override 和 overload 引发的学习感悟

    工作已三年的我,竟然面试的时候去裸考了.想当然的认为有很多东西会在工作中不知不觉积累下来,现在想想,真是扯淡... 我的三年的工作经验是开发测试的工作,主要负责测试用例的自动化实现,稍深一些的是自动化 ...

  4. Override和Overload差别,Overloaded的方法能否够改变返回值的类型?

    Overload是重载的意思, Override是覆盖的意思,也就是重写. 重载Overload表示同一个类中能够有多个名称同样的方法,但这些方法的參数列表各不同样(即參数个数或类型不同). 重写Ov ...

  5. 转: Delphi的OverRide、OverLoad和Virtual方法

    http://blog.csdn.net/ckli/article/details/2201418 override 重写 也叫覆盖 .方法的重写Overriding和重载Overloading是Ja ...

  6. Java override 和 overload 的区别

    override 是重写(覆盖)了一个方法,用来实现不同的功能,一般是用于子类继承父类时,重写父类的方法的时候. 重写(覆盖)的规则: 1.重写方法的参数列表必须表示与被重写的方法相同,否则不能称为重 ...

  7. override与overload的区别

    override(重写,覆盖) 1.方法名.参数.返回值相同. 2.子类方法不能缩小父类方法的访问权限. 3.子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常). 4.存在于父类和子类之 ...

  8. C#中override和overload的区别

    重载应该叫overload,重写叫override:重载某个方法是在同一个类中发生的!重写是在子类中重写父类中的方法. 1.override:   父类:public virtual string T ...

  9. override和overload的区别

    override(重写,覆盖) 1.方法名.参数.返回值相同. 2.子类方法不能缩小父类方法的访问权限. 3.子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常). 4.存在于父类和子类之 ...

随机推荐

  1. 读<阿里亿级日活网关通道架构演进>有感

    读<阿里亿级日活网关通道架构演进>时对优化方法有些概念不理解,特意搜索了一下,拓展自己的思路. 其中的优化: 优化方法中1,2比较常见,3,4我知道的比较少,很感兴趣.就继续追踪下去: 于 ...

  2. 10.14 android输入系统_多点触摸驱动测试及Reader线程、InputStage分析

    21. 多点触摸_电容屏驱动程序_实践_tiny4412 tiny4412触摸屏: 分辨率为800 x 480http://wiki.friendlyarm.com/wiki/index.php/LC ...

  3. [Angular] Alternative Themes - Learn the Host-Context Selector

    To add alernative theme, we can use :host-context() selector from Angular. //au-fa-input-red-theme.c ...

  4. jquery如何实现点击标题收缩下面的内容

    jquery如何实现点击标题收缩下面的内容 一.总结 一句话总结:怎么做复杂前端任务,先把样式(最简单)做出来,然后在写js. 1.如何取jquery集合中的某个索引号的元素? 不是get(),是eq ...

  5. matplotlib学习之函数积分图

    # coding:utf-8 import numpy as np from matplotlib import pyplot as plt from matplotlib.patches impor ...

  6. jquery ajax实现省市二级联动

    今天给大家带来使用jQuery ajax实现的省市联动效果.我们直奔主题,先说下实现思路: 准备数据 这里数据库我使用的是mysql,先看下表格: provience表 city表 这里使用provi ...

  7. Fragment之一:基本原理 分类: H1_ANDROID 2013-11-18 14:15 1642人阅读 评论(0) 收藏

    1.低版本API对Fragment的支持 Fragment必须被加载进Acitivity中,才能呈现.而在低于3.0版本的API中,由于不存在Fragment,因此必须使用support包: (1)对 ...

  8. AngularJS之基本指令(init、repeat)

    <h3>ng-init初始化变量</h3> <div ng-init="name='aurora';age='18'"> <p ng-bi ...

  9. ssh登录很慢,登录上去后速度正常问题的解决方法

    1. DNS反向解析的问题 OpenSSH在用户登录的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法.如果客户机的IP没有域名,或者 ...

  10. Go语言:正則表達式的使用

    Go语言的正則表達式使用非常easy.演示样例代码: package test import ( "fmt" "regexp" ) func RegixBase ...