Java中函数的重载和重写
重载
重载指的是两个或者两个以上同名函数,但它们的参数不一样,这时会出现函数重载的情况。比如下面这段代码
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中函数的重载和重写的更多相关文章
- java中的方法——重载yu重写(转)
重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. ...
- Java中方法的重载与重写
1.方法的名字和参数列表称为方法的签名:每个方法具有唯一与其对应的签名: 2.方法的重载:在某个类中,存在具有多个相同名字不同参数列表的方法,称之为重载: 被重载的方法必须改变参数列表(参数个数或类型 ...
- Java中函数的重载
函数的重载 1.同一个类 2.同名函数 3.参数个数不同或者参数类型不同 4.java是严谨性语言,如果函数出现的调用的不确定性,会编译失败. public static int add(int a, ...
- 如何区分Java中的方法重载和重写
首先说的是重载: 方法的重载 * 在同一个类中,方法名相同,参数列表不同.与返回值类型无关. * 参数列表不同: * A:参数个数不同 * B:参数类型不同 * C:参数的顺序不同(不算重载 报错) ...
- 详细讲解Java中方法的重载和重写
首先讲讲方法的重载: Java的重载就是在类中可以创建多个方法,它们具有相同的名字,但是却有不同的参数. 判断是否重载只有两个条件: 1)相同的方法名 2)不同的参数 具体为: A.方法参数类型不同 ...
- java中的方法重载与重写以及方法修饰符
1. 方法重载Overloading , 是在一个类中,有多个方法,这些方法的名字相同,但是具有不同的参数列表,和返回值 重载的时候,方法名要一样,但是参数类型和参数个数不一样,返回值类型可以相同,也 ...
- java中方法的重载和覆盖
java中方法的重载和覆盖 先来了解一下这两个名词的含义. 重载: 在一个类当中才可以重载,方法名相同,参数个数不同或参数个数相同而参数类型不同. 覆盖: 又称重写,在派生类(子类)中重写基类(父类) ...
- Java中方法的重载
Java 中方法的重载 问: 什么是方法的重载呢? 答: 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方 ...
- java 中函数的参数传递详细介绍
java中函数的参数传递 总结: 1.将对象(对象的引用)作为参数传递时传递的是引用(相当于指针).也就是说函数内对参数所做的修改会影响原来的对象. 2.当将基本类型或基本类型的包装集作为参数传递时 ...
随机推荐
- 1.6getId()方法
getId()方法的作用是取得线程的唯一标识. package com.cky.test; /** * Created by chenkaiyang on 2017/12/2. */ public c ...
- Ng第十四课:降维(Dimensionality Reduction)
14.1 动机一:数据压缩 14.2 动机二:数据可视化 14.3 主成分分析问题 14.4 主成分分析算法 14.5 选择主成分的数量 14.6 重建的压缩表示 14.7 主成分分析法 ...
- Android自定义视图三:给自定义视图添加“流畅”的动画
这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三: ...
- C#.NET WebApi返回各种类型(图片/json数据/字符串),.net图片转二进制流或byte
using System.IO; /// <summary> /// WebApi返回图片 /// </summary> public HttpResponseMessage ...
- http发送请求方式;分为post和get两种方式
http发送请求方式:分为post和get两种方式
- Python自动化开发 - 内置函数总结
Python解释器提供了很多内置函数 参考链接:https://docs.python.org/3.6/library/functions.html 一.数学相关 1.绝对值:abs(-1) 2.最大 ...
- I - Dividing Stones
Description There are N stones, which can be divided into some piles arbitrarily. Let the value of e ...
- 转 iOS宏定义的使用与规范
宏定义在很多方面都会使用,例如定义高度.判断iOS系统.工具类,还有诸如文件路径.服务端api接口文档.为了对宏能够快速定位和了解其功能,我们最好在定义的时候将其放入特定的头文件中,下面我抛砖引玉,对 ...
- Hive Bug修复:ORC表中array数据类型长度超过1024报异常
目前HVIE里查询如下语句报错: select * from dw.ticket_user_mtime limit 10; 错误如下: 17/07/06 16:45:38 [main]: DEBUG ...
- Android SDK Mangaer 需要下载的组件
以 Windows 下为例,安装完 Android SDK 后,可以看到 SDK 的目录结构如下: 其中: SDK Manager.exe 是 Android SDK 的管理工具, AVD Manag ...