精华内容
下载资源
问答
  • 主要介绍了Java中重载重写的对比与区别的相关资料,需要的朋友可以参考下
  • 重载一个类,具有多个相同名称的类,他们的参数列表却不相同 (参数类型不同、参数个数不同甚至是参数顺序不同) 重载对返回类型没有要求,可以相同也可以不同,但是不能返回类型来判断他们是否是重载。 ...

    1.重载

    重载指在一个类中,具有多个相同名称的方法,他们的参数列表却不相同

    (参数类型不同、参数个数不同甚至是参数顺序不同

    重载对返回类型没有要求,可以相同也可以不同,但是不能返回类型来判断他们是否是重载。

    例如

    package HelloWorld;
    
    public class Zuoye {
    	public static void main(String[] args) {
    		Zuoye z = new Zuoye();
    		z.fangfa1();
    		z.fangfa1("张旭");
    	}
    	
    	public void fangfa1() {
    		System.out.println("方法1");
    	}
    	public void fangfa1(String name) {
    		System.out.println("也是方法1,不过有参数"+ name);
    	}
    }

    总结:

    1.重载是一个类中多态性的一种表现

    2.重载是在一个类中,具有相同名称不同参数列表的方法

    3.重载不能根据返回类型的相同或者不同来区分重载函数。

    2.重写

    1.重写是指在不同类中,将父类的方法在子类中重新写一遍,子类继承了父类原有的方法,但有时又不想继承父类原有一模一样的方法,所以就在返回类型,方法名,参数列表相同的情况下,对方法体进行修改进行重写,这就是重写。但注意的是 子类的访问修饰符不能比父类的更严格(意思就是父类的访问修饰符要更加 严谨,权限更少,父亲严格

    例如

    package HelloWorld;
    
    public class Father {
         public static void main(String[] args) {
        	    Son s = new Son();
        	    s.fangfa();
    	}
    	public void fangfa() {
    		System.out.println("我是爸爸的方法");
    	}
    }
    class Son extends Father {
    	public void fangfa() {
    		System.out.println("我是儿子的方法");
    	}
    }
    

    返回结果是

    重写的总结:

    1. 发生在父类和子类关系之间

    2. 他们的返回类型,方法名,列表参数相同     方法体不同。

    3.子类不能比父类更严格 ,(父亲比儿子严格)。

    4重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常

    访问修饰符图

    private 最严格。

    private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
    default (即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法
    protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
    public : 对所有类可见。使用对象:类、接口、变量、方法

    总结重载和重写的区别:

    答:方法的重载和重写都是实现多态的方式 ,区别在于重载实现的是编译时的多态性,重写实现的运行时的多态性。

    重载是在发生在同一个类中,他们有相同的方法名 ,但有不同的参数列表,重载对返回类型没有特别要求,不能根据返回类型来进行区分   。

    而重写发生在不同类中,发生在子类和父类之间的,重写要求子类与父类的被重写方法具有相同的返回类型,名称和参数列表。 但他们的方法体要不同。 同时,父类相较于子类,他的访问修饰符会更加严格,即访问范围更小。比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则) 。

    展开全文
  • 主要介绍了Java方法重载和重写原理区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 2.重载是同一个类,方法与方法之间的关系;重写是不同类,子类与父类的关系。 3.构造器可以重载,但不能重写。 4重载可以有不同的访问修饰符;重写访问修饰符的范围要比被重写的范围大 5.重载可以抛出不同的异常...

    1.重载是参数个数 或 类型 或 顺序不一样;重写是参数列表完全一样

    2.重载是同一个类中,方法与方法之间的关系;重写是不同类中,子类与父类的关系。

    3.构造器可以重载,但不能重写。

    4.重载可以有不同的访问修饰符;重写访问修饰符的范围要比重写前的范围大

    5.重载可以抛出不同的异常;重写只能抛出比重写前范围更小的检查性异常。

    展开全文
  • java中重载重写区别

    万次阅读 多人点赞 2019-04-30 13:23:21
    重写(Overriding) 重载(Overloading) 类的数量 父子类、接口与实现类 本类 方法名称 一致 一致 参数列表 ...

     

    重写(Overriding

    重载(Overloading

    类的数量

    父子类、接口与实现类

    本类

    方法名称

    一致

    一致

    参数列表

    一定不能修改

    必须修改

    返回类型

    一定不能修改

    可以修改

    异常

    可以减少或删除,但不能扩展

    可以修改

    重载(Overloading

    重载发生在本类,方法名相同,参数列表不同,与返回值无关,只和方法名,参数列表,参数的类型有关.

    重载(Overload):首先是位于一个类之中或者其子类中,具有相同的方法名,但是方法的参数不同,返回值类型可以相同也可以不同。

    (1):方法名必须相同

    (2):方法的参数列表一定不一样。

    (3):访问修饰符和返回值类型可以相同也可以不同。

    其实简单而言:重载就是对于不同的情况写不同的方法。 比如,同一个类中,写不同的构造函数用于初始化不同的参数。

    public class Test1 {
        public void out(){
            System.out.println("参数"+null);
        }
        //参数数目不同
        public void out(Integer n){
            System.out.println("参数"+n.getClass().getName());
        }
    
        //参数类型不同
        public void out(String string){
            System.out.println("参数"+string.getClass().getName());
        }
    
        public void out(Integer n ,String string){
            System.out.println("参数"+n.getClass().getName()+","+string.getClass().getName());
        }
        //参数顺序不同
        public void out(String string,Integer n){
            System.out.println("参数"+string.getClass().getName()+","+n.getClass().getName());
        }
        
        public static void main(String[] args) {
            Test1 test1 = new Test1();
            test1.out();
            test1.out(1);
            test1.out("string");
            test1.out(1,"string");
            test1.out("string",1);
        }
    }

     

    重写(Overriding

    重写发生在父类子类之间,比如所有类都是继承与Object类的,Object类中本身就有equals,hashcode,toString方法等.在任意子类中定义了重名和同样的参数列表就构成方法重写.

    重写(override):一般都是表示子类和父类之间的关系,其主要的特征是:方法名相同,参数相同,但是具体的实现不同。

    重写的特征:

    (1):方法名必须相同,返回值类型必须相同

    (2):参数列表必须相同

    (3):访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。

    (4):子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。

    (5):构造方法不能被重写,

    简单而言:就是具体的实现类对于父类的该方法实现不满意,需要自己在写一个满足于自己要求的方法。

    class Test{
        public void out(){
            System.out.println("我是父类方法");
        }
    }
    
    public class Test1 extends Test{
        @Override
        //方法签名完全一致
        public void out() {
            System.out.println("我是重写后的子类方法");
        }
    
        public static void main(String[] args) {
            Test test = new Test();
            test.out();
            test = new  Test1();
            test.out();
        }
    }

     

    展开全文
  •  方法的重载是同一个类多态性的一种表现。  方法重载须遵循如下两条规则  (1)方法名相同。  (2)参数列表不同。  注意:方法的返回值类型不能用来区分重载的方法。这是因为当调用一个方法时,返回值...
  • java中方法重载和重写区别

    千次阅读 2018-08-16 10:34:08
    方法重载和重写,光从名称上来说,很类似,也很容易弄错,接下来我们先简述两者的区别和联系。 1. 方法重载  首先方法重载是同一个类的不同方法间的关系,这些方法具有同名(方法名一样),但是具有不同的参数...

    方法重载和重写,光从名称上来说,很类似,也很容易弄错,接下来我们先简述两者的区别和联系。

    1. 方法重载

        首先方法重载是同一个类中的不同方法间的关系,这些方法具有同名(方法名一样),但是具有不同的参数列表(参数的个数和参数的类型不同)。方法重载其实是同一个类中多态性的表现,调用者可以依据传入不同个数或者不同类型的参数来决定最终调用哪一个同名的方法。方法重载其实是程序编译时的多态性,即代码在编译的时候就决定了使用哪一个方法。

    方法重载的原则:

       1.1 两者的方法名称一致

       1.2 必须具有不同的参数列表(参数的个数和参数的类型)

       1.3 可以有不同的参数返回类型

       1.4 可以有不同的访问修饰符

       1.5 可以抛出不同的异常

    2. 方法重写

        方法重写是子类与父类间的关系,子类的方法与父类的方法具有相同的方法名,相同的返回类型,相同的参数列表。方法重写其实是父类与子类间的一种多态性的表现。方法重写其实是代码运行时的多态性,即只有在代码真正运行的时候,才能决定到底使用哪一个真正的方法。

    方法重写的原则:

       2.1 子类不能重写父类中定义为final类型的方法

       2.2 子类中必须重写父类中定义为abstract

       2.3 重写方法必须具有相同的参数列表(参数个数和参数类型)

       2.4 重写方法必须具有相同的返回类型

       2.5 子类中重写的方法的访问修饰符一定要大于父类中被重写方法的访问修饰符(public>protected>default>private)

       2.6 子类中重写的方法一定不能抛出新的检查异常或者比父类中被重写的方法申明的更加宽泛的检查型异常,例如:父类中的一个方法抛出了一个IOException的异常,那么其子类中重写的该方法只能抛出IOException异常的子异常,不能抛出IOException的父异常(Exception)

       2.7 父类中的静态方法不能被重写的,父类中的方法不能被重写为静态方法

    展开全文
  • 主要介绍了实例分析java中重载重写区别,需要的朋友可以参考下
  • 一、方法的重载重载(overloading) 是一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个...(7)方法能够同一个类或者一个子类重载
  • 2、覆盖(也叫重写)是指派生类重新对基类的虚函数(注意是虚函数)重新实现。即函数名参数都一样,只是函数的实现体不一样。 二、规则上的不同: 1、重载的规则: ①必须具有不同的参数列表。 ②可以有不同...
  • 本文主要介绍Java重载和重写,学习java的同学都知道Java的多态有多重要,这里给大家举例说明函数的重载和重写,希望能帮助有需要的小伙伴
  • JAVA重写和重载区别

    万次阅读 多人点赞 2018-07-11 22:04:05
    问: Java 重载重写是什么?有什么区别? 答:  重载(Overload)是让类以统一的方式处理不同类型数据的一种手段,实质表现就是多个具有不同的参数个数或者类型的同名函数(返回值类型可随意,不能以返回...
  • 主要介绍了java中重载,继承,重写和多态的区别,需要的朋友可以参考下
  • 主要介绍了Java中继承、多态、重载和重写介绍,需要的朋友可以参考下
  • java 重载重写区别(面试考点)

    千次阅读 多人点赞 2018-10-15 23:40:31
    java 重载重写区别
  • Java重载(overload)和重写(override)区别 重载(overload): 指一个类的多个方法的方法名相同,但时具有不同的参数列表,即参数的个数参数的类型不能完全一样; 重写(override): 方法的重写是父类子类之间的,子类...
  • Java中重载和重写区别 重载和重写区别: 1、发生的位置 重载:一个类 重写:子父类 2、参数列表限制 重载:必须不同的 重写:必须相同的 3、返回值类型 重载:与返回值类型无关 重写:与返回值类型必须一致...
  • 面试官:Java重写和重载有什么区别

    万次阅读 多人点赞 2020-02-21 10:50:29
    老读者都知道了,七年前,我从美女很多的苏州...他当时扔了一个面试题把我砸懵了:“王二,Java重写(Override)和重载(Overload)有什么区别?” 那年我二十三岁,正值青春年华,大约就是周杰伦发布《八度空间...
  • 在Java中若方法的名称相同但参数列表不同,这样的方法之间构成重载关系。 若从父类继承下来的方法不满足子类的需求时,就需要子类重新写一个所继承方法一样的方法来覆盖掉所继承的版本,即重写
  • java中重载重写区别.pdf
  • Java重载和重写区别(面试常见)

    千次阅读 2015-06-30 11:49:50
    今天看C#的基础知识,同是面向对象的语言,看到重载和重写,我突然想了半天,有点模糊了,马上度娘一番,回想起自己北京实习的项目,实际上,开发经常用到重载和重写,自己不去总结罢了。今天找了一份比较好的...
  • 重载:发生在Java的同一个类里面,通过定义相同的方法,定义不同的参数列表来区分开这些相同的方法,参数列表的不同可以是参数的类型、参数的个数参数的顺序。当我们调用这些方法的时候通过传入参数的不同,运行...
  •   子类实现父类的同名方法,并且参数的类型个数完全相同,这种情况称为覆写/重写/覆盖 重写的规则: ①返回类型相同 ②方法名相同 ③参数相同   重写要注意的事项: ①普通方法可以重写,static修饰的静态方法...
  • java中重写和重载区别以及定义

    千次阅读 多人点赞 2020-08-12 16:46:09
    重载(Overload)和重写(Override)的区别: 方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生一个类,同名的方法如果有不同的参数列表...
  • Java中重载和重写区别

    千次阅读 2019-05-14 18:29:40
    子类把父类本身具有的方法重新写一次。子类继承 了父类原有的非私有方法,但并不想完全遵循父类方法的功能。所以方法名、参数列表、返回类型都相同的情况下,对父类方法修改或重写,即我们所说的重写...
  • Java重载和重写区别 重载(Overloading)  方法名称相同,参数的类型或个数不同。  对权限没有要求  发生一个类 重写(Overriding)  方法名称、参数类型、返回值类型全部相同。  被重写的...
  • Java中重载和覆盖(重写)的区别 1,基本概念 重载(Overload) Java中的方法重载发生同一个类里面两个或者多个方法的方法名相同但是参数不同的情况。 参数不同的情况: 1,参数个数不同 2,参数类型不同 3,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 107,187
精华内容 42,874
关键字:

在java中重载和重写的区别

java 订阅