穿越火线老是闪退总闪退什么回事

君,已阅读到文档的结尾了呢~~
详细介绍了JAVA中方法覆盖与重载的区别,并从深层的角度阐述为什么会有这样的区别;最后,还给出一个小例子,以帮助读者理解。
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
JAVA方法覆盖与重载的区别
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口方法重载和方法重写的区别是什么
方法重载和方法重写的区别是什么
来源:学习方法编辑:1013&阅读:
  java中方法重载和重写的区别和定义
  重载:一个类中有一个方法A,你又在这个类中创建了一个方法B,方法B的名字和A一样,返回值类型也一样,但是参数的类型或个数不同,此时B重载了A。
  例如:
  public class TestClass{
  public int test(int i){return 1;}
  public int test(float f){return 1;}
  重写:一个类M继承另一个类N,N中有一个方法A,这时你在M写了一个方法B,方法B的名字、返回值以及参数都和A一样,此时B重写了A。
  例如:
  public class TestClass1{
  public int test(int i){return 1;}
  public class TestClass2 extends TestClass1{
  public int test(int i){return 2;}
  重写和重载的区别
  1.重写
  是父类与子类之间多态性的一种表现,如果在子类中定义某方法与其父类有相同的名称和参数,且方法的返回值类型与抛出异常的类型各自与父类的一致,我们说该方法被重写 。
  子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被&屏蔽&了。
  2. 重载
  是一个类中多态性的一种表现。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
  3.重写与重载的区别
  重写多态性起作用,对调用被重载过的方法可以大大减少代码的输入量,同一个方法名只要往里面传递不同的参数就可以拥有不同的功能或返回值。
  用好重写和重载可以设计一个结构清晰而简洁的类,可以说重写和重载在编写代码过程中的作用非同一般。&  下面小编举个例子说明一下。
  public class Father
  public void speak()
  System.out.println(&Father&);
  public class Son extends Father
  public void speak()
  System.out.println(&son&);
  这也叫做多态性,重写方法只能存在于具有继承关系中,重写方法只能重写父类非私有的方法。
  当上例中 Father类 speak()方法被private时,Son类不能重写 Father类 speak()方法,此时Son类 speak()方法相当与在Son类中定义的一个speak()方法.
  Father类 speak()方法一但被final时,无论该方法被public,protected及默认所修饰时,Son类根本不能重写 Father类 speak()方法,试图编译代码时,编译器会报错.例:
  public class Father
  fianl public void speak()
  System.out.println(&Father&);
  public class Son extends Father
  public void speak()
  System.out.println(&son&);
  }//编译器会报错.
  Father类 speak()方法被时默认修饰时,只能在同一包中,被其子类被重些,如果不在同一包则不能重写。
  Father类 speak()方法被时protoeted时,不仅在同一包中,被其子类被重些,还可以不同包的子类重写。
  4.重写和重载在规则上的区别
  重写的规则
  1.参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载。
  2.返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。
  3.访问修饰符的限制一定要大于被重写方法的访问修饰符(public&protected&default&private)
  4.重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。
  例如:父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常。
  重载的规则
  1.必须具有不同的参数列表。
  2.可以有不同的返回类型,只要参数列表不同就可以了。
  3.可以有不同的访问修饰符。
  4.可以抛出不同的异常。
相关范文推荐
每年的4月1日是愚人节。每到这个节日,大家都会竭尽所能去对别人进行恶作剧。下面是小编整理的一些愚人节恶作剧方法,保证让你大开眼界。 1、发短信: 在愚人节那天早上你发条短信给你的朋友(仅限于男的发给女的,女的发给男的
愚人节你都被怎么愚过?下面是小编搜集的一些愚人节整蛊同学的整人方法,大家可以参考一下,玩笑不要开得太过哦。 1,女生:你买一个很漂亮的礼物盒,然后你就将恐吓的物品(或动物)放入盒子里,送给她。 2,用502胶水把一元钱银
钓鱼抛竿的使用方法有哪些?大家一起约着钓鱼的时候,你是怎么样钓鱼的?请看下面为大家整理的钓鱼抛竿的使用方法吧! 一、海竿串钩钓法 冬天,鱼在水库的深处,钓近不太行,所以要远投,用海竿钓;又因为冬天用荤饵最好,所以,我
冬季钓鱼时候阀杆钓鱼方法有哪些?冬季鱼往往去了深水,那么这个时候我们应该怎么样钓鱼呢?请看下面的冬季钓鱼时候阀杆钓鱼方法吧! 一、什么是筏竿 筏竿,顾名思义就是在渔筏上垂钓的一种钓竿,属于插节式钓竿,一般有1.8米两节
引导语:小学一年级语文应立足于促进学生的发展,为他们的终身学习、生活和工作奠定基
本文精彩评论
最新范文推荐
精彩范文推荐在前面的章节中,我们谈到了超类和子类。如果一个类从它的超类继承的方法,则有机会改写,只要它不标记为final的方法。
重载的好处是:定义一个行为是特定于该子类的类型表示一个子类可以实现根据它要求一个父类的方法的能力。
在面向对象的术语,重载表示覆盖现有的方法的功能。
让我们来看一个例子。
class Animal{
public void move(){
System.out.println(&Animals can move&);
class Dog extends Animal{
public void move(){
System.out.println(&Dogs can walk and run&);
public class TestDog{
public static void main(String args[]){
Animal a = new Animal(); // Animal reference and object
Animal b = new Dog(); // Animal reference but Dog object
a.move();// runs the method in Animal class
b.move();//Runs the method in Dog class
这将产生以下结果:
Animals can move
Dogs can walk and run
在上面的例子中,可以看到,即使b为一类动物的并运行在狗类中的move方法。这样做的原因是:在编译时,检查是在引用类型。然而,在运行时,JVM计算出的对象类型和运行将属于特定对象的方法。
因此,在上面的例子中,程序将正确编译,因为动物类有法之举。然后,在运行时,它运行的方法,具体用于该对象。
请看下面的例子:
class Animal{
public void move(){
System.out.println(&Animals can move&);
class Dog extends Animal{
public void move(){
System.out.println(&Dogs can walk and run&);
public void bark(){
System.out.println(&Dogs can bark&);
public class TestDog{
public static void main(String args[]){
Animal a = new Animal(); // Animal reference and object
Animal b = new Dog(); // Animal reference but Dog object
a.move();// runs the method in Animal class
b.move();//Runs the method in Dog class
这将产生以下结果:
TestDog.java:30: cannot find symbol
: method bark()
location: class Animal
这个程序将抛出一个编译时错误,因为B的引用类型的动物没有一种方法,通过bark的名字。
规则方法重载:
参数列表应该是完全一样被覆盖的方法。
返回类型应相同或超类中的原重写的方法声明的返回类型的子类型。
访问级别不能比被重写的方法的访问级别更严格。例如:如果父类方法声明为public,在子类中重写的方法不能是private或protected。
实例方法可以被覆盖,只有当他们是由子类继承。
方法声明为final不能被重写。
方法声明为静态的不能被覆盖,但可以重新声明。
如果一个方法不能被继承,那么它不能被重写。
作为实例的父类在同一个包内的子类可以重写未声明为私有的或最终的任何超类方法。
在不同的包中的子类只能重写非final方法声明为public或protected。
重写方法可以抛出任何异常取消勾选,无论重写的方法是否抛出异常与否。但压倒一切的方法不应该抛出checked exceptions新的或不是由重写的方法声明的那些更广泛。重写方法可以抛出比重写的方法较窄或更少的例外。
构造函数不能被重写。
使用super关键字:
当调用一个重载方法的超类版本,那么需要使用super关键字。
class Animal{
public void move(){
System.out.println(&Animals can move&);
class Dog extends Animal{
public void move(){
super.move(); // invokes the super class method
System.out.println(&Dogs can walk and run&);
public class TestDog{
public static void main(String args[]){
Animal b = new Dog(); // Animal reference but Dog object
b.move(); //Runs the method in Dog class
这将产生以下结果:
Animals can move
Dogs can walk and run
本站代码下载:java中的方法重载和覆盖的区别_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
java中的方法重载和覆盖的区别
上传于|0|0|文档简介
&&java中的方法重载和覆盖的区别
你可能喜欢温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(931)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_083070',
blogTitle:'方法重载和方法覆盖的区别',
blogAbstract:'&\r\n日 星期日 上午 09:23\r\n\r\n\r\n\r\n\r\n\r\n\r\n方法重载(method overloading):只依据方法的名称、参数的不同来判断两个方法是否相同。但方法的重载都是基于同一个类。条件如下:\r\nA. 方法名相同\r\nB. 不同的参数个数;\r\nC. 不同的参数类型;\r\nD.不同的参数顺序;\r\n方法覆盖(method overriding):\r\n&&&&&& 覆盖是基于继承的,没有继承就没有覆盖。在java中,覆盖的实现是在子类中对从中继承过来的非私有方法的内容进行修改的一个动作。\r\n覆盖必须满足条件:\r\n',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:1,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}}

我要回帖

更多关于 玩穿越火线闪退怎么办 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信