精华内容
下载资源
问答
  • 重载和重写的区别
    千次阅读
    2022-01-18 17:40:48

    文章目录


    前言

    JavaSE自学新手,学完三大特征总结。


    一、重载是什么?

    1. 重载是在一个类中实现的,可以使用在构造器、方法中。

    2.重载是方法名相同,形参列表不同的构造器、方法间彼此构成重载,与权限修饰符、返回值类型无关。

    3.在运行时,我们可以选择调用不同形参的方法。

    4.代码举例:

        private void show(){
            System.out.println();
        }
    
        protected void show(String name){
    
        }
        //与第一个方法冲突
        public int show(){
            System.out.println();
            return 0;
        }

    二、重写是什么?

    1.重写是子类在继承父类的基础上进行的,我们都知道子类继承父类就获取了父类中的所有属性和方法(只是有些能调用有些不能调用),我们对其非private的方法的方法体进行修改的操作称为方法的重写。

    2.重写也称为方法的重置、覆盖。在程序执行时,子类的方法将覆盖父类的方法。

    3.代码:

        //父类中定义的方法
        public double findArea(){
            return -1;
        }
    
        //子类中重写的方法
        @Override
        public double findArea() {
            return Math.PI * radius * radius;
        }


    总结

    1.定义:

    ①重载:在同一个类的内部同名、同参的方法、构造器,它们彼此之间构成重载

    ②重写:子类继承父类中的方法,并对其方法体进行修改的操作称为方法重写。

    2.异同:

    1. 相同点:

      1. 重载和重写的方法名都相同

    2. 不同点:

      1. 重载的参数类型一定不相同,而重写的参数类型一定相同。

      2. 重写的方法的返回值类型只能是父类类型或者父类类型的子类 , 而重载的方法对返回值类型没有要求

      3. 重写发生在父子类中,重载发生在同一个类中

      4. 子类重写方法的返回值类型不能大于父类被重写的方法的返回值类型,而重载没有返回值类型的限制

      5. 子类重写的方法使用的访问权限不能小于父类被重写的方法的访问权限,而重载没有访问权限的限制

      6. 子类不能重写父类中声明为private权限的方法,而重载是可以与private的方法彼此之间构成重载的

    更多相关内容
  • 前段时间,刚学完C#,其中重载重写傻傻分不清楚。如今通过查阅资料对这两者有了一个大概的理解,不足之处还请多多指教。 二、定义  重载:在同一定义域内(比如一个类里面)。方法名相同,参数个数、次序、类型...
  • 主要介绍了C++中重载重写(覆盖)隐藏的区别,是C++面向对象程序设计非常重要的概念,需要的朋友可以参考下
  • 本文主要介绍Java 的重载和重写,学习java的同学都知道Java的多态有多重要,这里给大家举例说明函数的重载和重写,希望能帮助有需要的小伙伴
  • 主要介绍了Java方法重载和重写原理区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  •  (1)子类的方法的名称及参数必须重写的方法完全相同。  (2)子类的方法返回类型必须重写的方法相同。  (3)子类方法不能缩小所重写方法的访问权限。  (4)子类方法不能抛出比所覆盖方法更多的...
  • 重载和重写区别

    千次阅读 2022-02-16 17:52:09
    重载是在同一个类中的具有相同方法名,不同参数(个数,类型,顺序)的方法的定义,构造方法...重写是在子类继承父类的方法重写,在子类重写的方法必须父类方法完全相同,可以用@override检查是否是重写方法 ......


    重载和重写的区别
     


    一、重载

    重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

    每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。

    最常用的地方就是构造方法的重载。

    重载是在同一个类中的具有相同方法名,不同参数(个数,类型,顺序)的方法的定义,
    构造方法普通方法,抽象方法都可以重载;重写是在子类继承父类的时候重写,
    在子类重写的方法名必须和父类的方法名完全相同,可以用@override检查是否是重写方法

    重载规则:

    • 被重载的方法必须改变参数列表(参数个数,类型或顺序不一样);
    • 被重载的方法可以改变返回类型;
    • 被重载的方法可以改变访问修饰符;
    • 被重载的方法可以声明新的或更广的检查异常;
    • 方法能够在同一个类中或者在一个子类中被重载。
    • 无法以返回值类型作为重载函数的区分标准。

    二、重写

    重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!

    重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。

    重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception 异常,因为 Exception 是 IOException 的父类,抛出 IOException 异常或者 IOException 的子类异常。

    在面向对象原则里,重写意味着可以重写任何现有方法


    三、重载与重写的区别

    区别点重载方法重写方法
    参数列表必须修改一定不能修改
    返回类型可以修改一定不能修改

    方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。

    • (1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading)。
    • (2)方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写(Overwriting)。
    • (3)方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。
    展开全文
  • 重载和重写区别

    2021-12-18 15:33:15
    3. 重载和重写区别 重载和重写是一个特别好理解的概念,这里说一个通俗的解答方式 重载(Overload):首先是位于一个类之中或者其子类中,具有相同的方法名,但是方法的参数不同,返回值类型可以相同也可以不同。 ...

    以下都是Java的基础面试题,相信大家都会有种及眼熟又陌生的感觉、看过可能在短暂的面试后又马上忘记了。JavaPub在这里整理这些容易忘记的重点知识及解答建议收藏,经常温习查阅


    3. 重载和重写区别

    重载和重写是一个特别好理解的概念,这里说一个通俗的解答方式

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

    1. 方法名必须相同
    2. 方法的参数列表一定不一样。
    3. 访问修饰符和返回值类型可以相同也可以不同。

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

    public class JavaPubTest {
        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) {
            JavaPubTest javaPubTest = new JavaPubTest();
            javaPubTest.out();
            javaPubTest.out(1);
            javaPubTest.out("string");
            javaPubTest.out(1,"string");
            javaPubTest.out("string",1);
        }
    }
    

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

    1. 方法名必须相同,返回值类型必须相同。
    2. 参数列表必须相同。
    3. 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。
    4. 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
    5. 构造方法不能被重写。

    10道不得不会的Java基础面试题

    https://javapub.blog.csdn.net/article/details/122011870

    手机随时看:微信搜【JavaPub】 JavaPub

    查看更多面试题及答案
    wx

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

    千次阅读 2021-10-29 14:43:44
    1.重载 重载指在一个类中,具有多个相同名称的类,他们的参数列表却不相同 (参数类型不同、参数个数不同甚至是参数顺序不同) 重载对返回类型没有要求,可以相同也可以不同,但是不能返回类型来判断他们是否是...

    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重载和重写区别

    2022-06-08 13:26:51
    1、方法的重载的概念在同一个类中,允许存在一个以上的...4、如何确定类中某一个方法的调用:方法名 ——> 参数列表子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作重写以后,当创建子类对象以后,通过
  • 本文实例总结了C#中多态、重载重写的概念与区别。对于初学C#的朋友来说有不错的参考价值。分享给大家供大家参考。具体分析如下: 重写:是指重写基类的方法,在基类中的方法必须有修饰符virtual,而在子类的方法中...
  • 重载和重写,这是两个新概念,是两个令我们容易混淆的概念。方法重载(overloading method)是在一个类里面,方法名字相同,而参数不同。返回类型呢?可以相同也可以不同。方法重写(overiding method)子类不想原封不动...
  • 重载和重写有什么区别

    千次阅读 2022-04-08 18:35:00
    重载和重写是Java中两个重要的概念。重载可以实现本类内的方法多态性,重写可以实现子类或实现类的多态性。
  • Java的重载和重写区别(面试常见)

    千次阅读 2015-06-30 11:49:50
    今天在看C#的基础知识,同是面向对象的语言,看到重载和重写,我突然想了半天,有点模糊了,马上度娘一番,回想起自己在北京实习的项目,实际上,开发中经常用到重载和重写,自己不去总结罢了。今天找了一份比较好的...
  • C#重载重写区别

    千次阅读 2020-06-13 18:10:01
    前言:在之前的博文中,我总结过重载重写区别与用法,本博文算是一个系统的概况。 文章目录一、重载重写区别二、重载重写的特征三、重载重写的对比 一、重载重写区别 重载必须在同一个类,重写在...
  • 重载(Overloading)重载发生在本类,方法名相同,参数列表不同,与返回值无关,只方法名,参数列表,参数的类型有关.重载(Overload):首先是位于一个类之中或者其子类中,具有相同的方法名,但是方法的参数不同,...
  • 二者的区别 重载的规则:代码示例: 重写的规则:访问权限由大到小:public > protected > default > private代码示例: ps:推荐在代码中进行重写方法时显式加上 @Override 注解 。运行结果:......
  • 重写和重载区别是什么

    万次阅读 多人点赞 2021-12-26 21:16:22
    重写和重载区别是什么
  • C++中重载和重写区别

    千次阅读 2021-03-31 20:12:01
    如果面试C++工程师,重载和重写区别很频繁被问到。我建议这么简单回答即可:重载是指同名函数参数的类型,个数,顺序不同,根据参数列表决定调用哪个函数,函数的返回类型不关心。而重写是子类中实例化virtual修饰...
  • C++ 重载重写及其区别

    千次阅读 2022-03-13 20:34:56
    C++ 重载重写及其区别
  • 重载和重写区别?

    2021-06-28 22:21:10
    这里写目录标题重写重载 重写 关键字Override,顾名思义,就是重新写一遍,发生在父类与子类之间,子类继承了父类的方法,但是子类并不像原封不动的使用父类的方法,就会在方法名,参数列表,返回类型(除过子类中...
  • 重载重写区别

    千次阅读 2022-07-21 23:31:25
    方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视...
  • C++基础学习之重载和重写区别

    千次阅读 2021-09-18 10:19:32
    重载和重写区别 1.定义不同---重载是定义相同的方法名,参数不同;重写是子类重写父类的方法。 2.范围不同---重载是在一个类中,重写是子类与父类之间的。 3.多态不同---重载是编译时的多态性,重写是运行时的多...
  • 首先,Objective-C中不完全支持重载,网上很多人要么将重载和重写搞混,要么说OC不支持重载(当然按照重载严格定义说OC不支持重载也没错),事实上OC支持参数个数不同的函数重载。 问题: Objective-CSwift中有...
  • 方法的重载和重写区别

    千次阅读 2021-12-21 08:23:00
    (1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型次序不同,则称为方法的重载 (Overloading)。 (2)方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 188,532
精华内容 75,412
关键字:

重载和重写的区别

友情链接: python.rar