重载(Overload)
覆盖(Override)
今天的重点主要是讲重载(Overload)。
什么叫重载?
简单的说:重载允许你在一个类中定义多个同名的方法,我可以在一个类里面定义好多方法,
这些方法的名字是相同的, 什么地方不一样呢?参数表一定不同.
对于修饰符,对返回值,抛出的异常都没有什么限制,根返回值类型一点关系都没有。
只要方法名相同,参数表不同,这就叫方法的重载(Overload)。
1、参数的个数不相同 √
2、参数的个数虽然相同,但是参数的类型不相同 √
3、参数类型的排列不同 √
4、形参(形式参数)名不同 ×
public void study(){
System.out.println("study()");
}
//1、参数的个数不相同 √
public void study(int a){
System.out.println("study(int)");
}
//2、参数的个数虽然相同,但是参数的类型不相同 √
public void study(double d){
System.out.println("study(double)");
}
public void study(int a ,double d ){
System.out.println("study(int,double)");
}
//3、参数类型的排列不同 √
public void study(double a,int b){
System.out.println("study(double,int)");
}
/*4、形参(形式参数)名不同 错误 ×
public void study(double c,int d){
System.out.println("study(double,int)");
}*/
显然会根据你给的参数,调哪个方法由你给的参数来决定。
[size]
是在编译期间决定,这是关于方法重载一个很重要的特点,到底要调用哪一个方法是由
编译器在编译的时候根据参数,根据参数类型 决定,换句话说在我们javac 编译的时候要调用哪个方法就已经确定下来了。在我们编译的时候就已经确定下来了。
方法重载还有一个好听的名字叫编译时多态。
我们说每当我们见到一个面向对象的语法,总是要揪出他背后的思想,
为什么有这个语法,如何通过这个语法来表现体现出面向对象的思想呢,
我们来看下方法重载的概念,他的思想的概念!
貌似这个方法其实没有必要设置重载,我换个名不就完了吗?
我拿名字就可以把不同的方法区分开了,我干嘛要方法名相同,参数表不一样呢?
为什么不换个名字,取不同的名字,我拿名字就可以把不同的方法给区分开了?
方法的声明代表他能做什么!
方法的实现代表着他怎么做!
[size=medium]
你会干什么,
你的功能,
你的行为就是你的方法。
方法是什么?方法是一个对象的功能,这个方法最终是留给其他对象去调用
比如说b有一个吃方法,由a去调用,a调用b的吃方法,换句话讲就是a让b吃。
a--调用-->b 的吃方法。
1、如果b中两方法的方法名不一样,那么这两个方法的差异要由谁来控制?
由a来控制,a要选择对b具体的调用方法。
2、而如果这两个方法都是吃,那么这两个方法的差异要由谁来控制?
我就对b调用一个吃方法,b要根据a给的东西(参数)自己选择一个合适的吃方法。
各司其职: 对象负责把东西(参数)给 方法 , 方法自己选择合适的处理方法。
重载的作用: 把一个对象同类方法,由于参数不同造成的差异,对于对象的调用者或者叫对想的使用者屏蔽。
方法重载最著名的应用就是System.out.println()/print()都是重载的方法;
java.lang.Object
|-java.io.OutputStream
|-java.io.FilterOutputStream
|-java.io.PrintStream 类的out对象的println()方法!
分享到:
相关推荐
此篇文章简单的讲解了java方法的定义,使用方式,然后介绍了java方法的重载,这些在以后的工作中时时刻刻都要用到,可以说java一切功能的实现靠的就是java方法
主要介绍了Java方法重载Overload原理及使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了java 重载(overload)与重写(override)详解及实例的相关资料,并附实例代码,需要的朋友可以参考下
Java中的方法重载(overload)
java重载,重载(Overload):指一个类中可以有多个方法具有相同的名字,但这些方法的参数不同(参数的类型和个数不同),1.重载和返回值类型无关,只和他的三个条件有关,即标红的三个部分。如果两个方法,参数一样...
消息循环重载 message overload
java语法 method overload 马克-to-win java视频 方法 重载
主要介绍了Java重写(Override)与重载(Overload)区别原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
java
C#中方法的重写(override)和重载(overload)的区别
重载 马克-to-win java视频 overload 函数的详细介绍
Java面向对象编程中的重写(override)指的是子类可以重写其父类中的非private方法,使得子类在调用该方法时会使用自己的实现而不是父类的实现。 重写(Override)讲解 定义一个名为 Animal 的父类和一个名为 Cat 的...
// 对overload测试的文件:OverloadTest.java public class OverloadTest { // 下面几个方法用来验证可以通过定义不同的参数类型和参数的数目进行方法重载。 public void fun(){ System.out.println("method ...
C++重载的学习课件 包括函数重载和运算符重载 学校的课件 内容非常详细实用 供大家学习!
java必学必会之方法的重载,介绍了方法的重载、构造方法的重载,想要学好java方法的重载的朋友一定要好好阅读
方法重载(overload)在传统的静态类型语言中是很常见的。JavaScript 作为动态语言, 是没有重载这一说的。一是它的参数没有类型的区分,二是对参数个数也没有检查。虽然语言层面无法自动进行重载,但借助其动态的...
方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现,想要了解更多请参考本
JAVA不支持操作符的重载(但是“+”实际上是一种操作符重载)。 复制代码 代码如下: <?php Class Father { public function fmeth1() { echo “fmeth1()… ”; } //public function fmeth1($str1) { // echo ...
本文实例讲述了ES6中Proxy与Reflect实现重载(overload)的方法。分享给大家供大家参考,具体如下: Proxy与Reflect实现重载(overload) 从语法角度讲JavaScript不支持重载。原因很简单,JS中函数可以传入任意类型、...
方法重载(Overload):是指方法名字相同,参数的个数、类型、次序不同。 方法重写(Override/Overwrite):是指子类重写了从父类继承过来的方法。 区别:方法重载没有继承、属于一种静态联编技术。 方法重写有继承、属于...