重载

重载指的是两个或者两个以上同名函数,但它们的参数不一样,这时会出现函数重载的情况。比如下面这段代码

class Test{
public void a(){
System.out.println("正常");
}
public void a(String t){
System.out.println("第二个a" + t);
}
}
class app{
public static void main(String[] args){
Test test = new Test();
test.a("啊"); // 函数被重载
test.a(); // 未被重载
}
}
------Output------
第二个a啊
正常

也就是它具体使用那个函数,是根据你的参数来决定的。

重写

通俗讲就是覆盖,在Java好像对同一个类中,不支持重写,下面这段代码,运行就报错了。

class Test{
public void a(){
System.out.println(0);
}
public void a(){
System.out.println(1);
}
}
class app{
public static void main(String[] args){
Test test = new Test();
test.a();
}
} ------Output------
app.java:5: ??: ??? Test?????? a()
public void a(){
^
1 ???

一般来说,也没人会这么写,使用重写,基本上是在继承中,比如下面这段代码。

class Test{
public void a(){
System.out.println(0);
}
} class Test2 extends Test{
public void a(){
System.out.println(1);
}
}
class app{
public static void main(String[] args){
Test2 test = new Test2();
test.a();
}
} ------Output------
1

Test2重写了Test中的a方法,不过在Java中,如果你想要重写某个方法,需要遵守几个规则,重写的函数返回类型需要和父类中返回的类型相同,形参相同,访问权限不能比父类中的小,比如下面这个就有问题

class Test{
public int a(){
return 0;
}
} class Test2 extends Test{
private int a(){
return 1;
}
}
class app{
public static void main(String[] args){
Test2 test = new Test2();
test.a();
}
} 报错

这段代码之所以报错是因为,Test2的方法a比父类的a权限小,但反过是可以的。

完。

Java中函数的重载和重写的更多相关文章

  1. java中的方法——重载yu重写(转)

    重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. ...

  2. Java中方法的重载与重写

    1.方法的名字和参数列表称为方法的签名:每个方法具有唯一与其对应的签名: 2.方法的重载:在某个类中,存在具有多个相同名字不同参数列表的方法,称之为重载: 被重载的方法必须改变参数列表(参数个数或类型 ...

  3. Java中函数的重载

    函数的重载 1.同一个类 2.同名函数 3.参数个数不同或者参数类型不同 4.java是严谨性语言,如果函数出现的调用的不确定性,会编译失败. public static int add(int a, ...

  4. 如何区分Java中的方法重载和重写

    首先说的是重载: 方法的重载 * 在同一个类中,方法名相同,参数列表不同.与返回值类型无关. * 参数列表不同: * A:参数个数不同 * B:参数类型不同 * C:参数的顺序不同(不算重载 报错) ...

  5. 详细讲解Java中方法的重载和重写

    首先讲讲方法的重载: Java的重载就是在类中可以创建多个方法,它们具有相同的名字,但是却有不同的参数. 判断是否重载只有两个条件: 1)相同的方法名 2)不同的参数 具体为: A.方法参数类型不同 ...

  6. java中的方法重载与重写以及方法修饰符

    1. 方法重载Overloading , 是在一个类中,有多个方法,这些方法的名字相同,但是具有不同的参数列表,和返回值 重载的时候,方法名要一样,但是参数类型和参数个数不一样,返回值类型可以相同,也 ...

  7. java中方法的重载和覆盖

    java中方法的重载和覆盖 先来了解一下这两个名词的含义. 重载: 在一个类当中才可以重载,方法名相同,参数个数不同或参数个数相同而参数类型不同. 覆盖: 又称重写,在派生类(子类)中重写基类(父类) ...

  8. Java中方法的重载

    Java 中方法的重载 问: 什么是方法的重载呢? 答: 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方 ...

  9. java 中函数的参数传递详细介绍

    java中函数的参数传递 总结: 1.将对象(对象的引用)作为参数传递时传递的是引用(相当于指针).也就是说函数内对参数所做的修改会影响原来的对象.  2.当将基本类型或基本类型的包装集作为参数传递时 ...

随机推荐

  1. 最顶尖的12个IT技能

    这差不多是十年前得了,看看今天这些东西哪些死掉了,哪些成长茁壮了,又能有哪些启示. KevinScott是谷歌公司的高级技术经理,也是美国计算机协会专业与教育委 员会的创始成员,他说:“我在硅谷看到的 ...

  2. Windows 8创新之路——样章分享

    在电脑里面躺了大约也有半年多的光景了. 在Windows 8.1还有不到一个月的时间里,将这些内容分享出来,也算是对得起自己那段时间的熬夜. 希望大家多提宝贵意见. 谢! 点击标题可浏览SkyDriv ...

  3. 1.java面向对象编程三大特性之封装

    封装即把一个对象的属性.行为等放在一个实体类中隐藏起来,不允许外部对其进行修改,但是被封装的属性.行为会对外提供一个接口与外部联系,这个对外的接口通常情况下就是set().get()方法.可以通过se ...

  4. hdu 4891 模拟水题

    http://acm.hdu.edu.cn/showproblem.php?pid=4891 给出一个文本,问说有多少种理解方式. 1. $$中间的,(s1+1) * (s2+1) * ...*(sn ...

  5. (使用STL自带的排序功能进行排序7.3.2)POJ 2092 Grandpa is Famous(结构体排序)

    /* * POJ_2092.cpp * * Created on: 2013年11月1日 * Author: Administrator */ #include <iostream> #i ...

  6. 控制uniFrame显示的一个管理类

    控制uniFrame显示的一个管理类 (2016-03-29 06:41:17) 转载▼ 标签: delphi 分类: uniGUI 利用uniGUI Frame的机制来搭建项目,是非常好的实现方式, ...

  7. FastReport

    看下面 https://www.cnblogs.com/m0488/category/477792.html

  8. xampp 80端口被占用后这么办??解决了

    modify port XAMPP: Another web server daemon is already running. 看不懂翻译一下 1. Open the file /opt/lampp ...

  9. wpf根据X与Y轴获取内部值

    效果图: 环境 Visual Studio ,.Net Framework 4.0 SDK 支持Windows XP,Windows Win7.. 实现方法: 创建ListBox设置ListBox.I ...

  10. MVVM Light 新手入门(1):准备阶段

    1.新建WPF空白项目. 2.NuGet 程序包中安装 3.根据MVVM分层结构,建立包含Model.View.ViewModel三层文件夹 如图: 1.View负责前端展示,与ViewModel进行 ...