java中重写与重载的区别

原创 2018年04月15日 17:30:21
方法重写(override):子类中出现了和父类中一模一样的方法声明(方法名、参数列表、返回值类型),也被称为方法覆盖,方法复写。
          使用特点:1、如果方法名不同,就调用对应的方法;
                             2、如果方法名相同,最终使用的是子类自己的。
                       (因为子类对象调用方法时:先找子类本身,再找父类。)      
          方法重写的应用:当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿                                          袭了父类的功能,又定义了子类特有的内容。
         方法重写的注意事项:1、父类中私有方法不能被重写;
                                             2、子类重写父类方法时,访问权限不能更低;
                                             3、父类静态方法,子类也必须通过静态方法进行重写。
         super关键字:代表父类关存储空间的标识(可以理解为父类引用)
                                 用来调用父类成员变量(super.成员变量)、访问构造方法(super(参数列表))、调用成员方法                                      (super.成员方法(参数列表))。
方法重写eg:
//定义一个基本手机类(即父类),此类功能:打电话;
class Phone {
                 public void call(String name) {
                                 System.out.println("给"+name+"打电话");
                      }
               }
//定义一个新的手机类(即子类),此类功能:打电话+发短信;
class NewPhone extends Phone {
                 public void call(String name) {
                 //此处用super引用父类的成员方法(打电话)
                 super.call(name);
                 System.out.println("可以发短信了");
                    }
}
//此处定义一个main方法
class Text {
                  public static void main(String[] args) {
                  NewPhone np = new NewPhone();
                   np.call("沙雪");
                }
}
方法重载(overload):本类中出现方法名一样,参数列表不同的方法。与返回值无关。
          使用特点:1、与返回值类型无关,只看方法名和参数列表;
                            2、在调用时虚拟机通过参数列表来区分同名方法。
          方法重写的应用:在写方法时我们需要见名知意,而我们的需求不断发生改变。定义多个不同的方法名又无法实现程                                          序一看就知道是做什么的。例如:我们需要定义多个求和方法;(见下例)
          参数列表不同:1、参数个数不同;
                                    2、参数列表不同。
方法重载eg:
class FunctionDemo4 {
                      public static void main(String[] args) {
                                         //jvm会根据不同的参数去调用不同的功能
                                         System.out.println(sum(10,20));
                                         System.out.println(sum(10,20,30));
                                         System.out.println(sum(10,20,30,40));
  
                                         System.out.println(sum(10.5f,20f));
                          }
 
                         //需求1:求两个数(整型)的和
                         public static int sum(int a,int b) {
                                           System.out.println("int");
                                            return a + b;
                             }
 
                          //需求2:求三数(整型)的和
                        public static int sum1(int a,int b,int c) {
                                            return a + b + c;
                            }
 
                          //需求3:求四个数(整型)的和
                         public static int sum2(int a,int b,int c,int d) {
                                              return a + b + c + d;
                             }
                         //需求4:求两个数(浮点型)的和
                      public static float sum(float a,float b) {
                                              System.out.println("float");
                                              return a + b;
                                }
}

java中重载与重写

  • 2015年11月10日 14:55
  • 223B
  • 下载

Java的重载和重写区别(面试常见)

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

java-面试题-重写与重载的区别

重载(Overload): (1)方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。  ...
  • xingxingmingyue
  • xingxingmingyue
  • 2016-03-24 09:24:42
  • 1602

java中重写、覆盖,重载三者的区别?

 java中重写、覆盖,重载三者的区别?  首先要明确Java中重写,覆盖,重载都是针对方法的几个不同概念。其中重写与覆盖等同,只是两种不同的称法而已。  现在主要来理解下重写与重载的区...
  • cey009008
  • cey009008
  • 2015-06-02 16:21:53
  • 7168

Java之重载和重写

重载(Overload)与重写(Overwrite/Override)都是针对方法来说的,那这两种机制有什么好处呢? 重载——同样的一个方法能够根据输入数据的不同,做出不同的处理。【有...
  • u010927640
  • u010927640
  • 2016-12-11 22:20:54
  • 1358

覆盖(重写),重构,重载的区别

论坛中常常看到有人问这样的问题,因此总结一下: 首先这三个概念描述得范围是不同的: 重构, 是对软计设计方法的描述, 这个层面是架构和设计方法, e.g: 你今天写了一个应用, 读txt文档并显示, ...
  • ostrichmyself
  • ostrichmyself
  • 2009-10-05 09:04:00
  • 8314

JAVA中的基础-----重载与重写(覆盖)的区别:overload与override

JAVA中多态的实现机制主要通过overload和override实现。 1)方法的重载:简言之,就是指同一个类有多个同名的方法,这些方法拥有不同的参数(同名不同参)。可以认为是类中方法的多态性,也称...
  • Emira_J
  • Emira_J
  • 2016-04-20 10:21:13
  • 769

Java重写Override和重载Overload

转载请标明出处:http://blog.csdn.net/wu_wxc/article/details/51457528 本文出自【吴孝城的CSDN博客】 重写是子类对父类中允许访问的的方法的重...
  • wu_wxc
  • wu_wxc
  • 2016-05-19 22:05:26
  • 663

Java 重写和重载的详解

一,重载 1.概念:对于同一个类,如果这个类里面有两个或者多个重名的方法,但是方法的参数个数、类型、顺序至少有一个不一样,这时候局构成方法重载 2.示例: public class Test{ ...
  • qq_33642117
  • qq_33642117
  • 2016-07-15 19:05:22
  • 1458

java面试题2--方法重写与重载、this和super关键字

1:方法重写和方法重载的区别?方法重载能改变返回值类型吗? 方法重写:      在子类中,出现和父类中一模一样的方法声明的现象。 方法重载:      同一个类中,出现的方法名相同,...
  • u014726937
  • u014726937
  • 2016-07-27 22:32:45
  • 762
收藏助手
不良信息举报
您举报文章:java中重写与重载的区别
举报原因:
原因补充:

(最多只允许输入30个字)