Java基础-方法重载和方法重写的区别
什么是java方法重载
(1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。
重载Overloading是一个类中多态性的一种表现。
(2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。
调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。
(3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。
如下:
package hwc.java.domain;
public class First {
public static void main(String[] args) {
new Fox().hwc_1(23);
new Fox().hwc_1("hah");
new Fox().hwc_1(232.2);
}
}
class Fox{
public void hwc_1(int a){
System.out.println(a+" "+"我是int 的");
}
public void hwc_1(String s){
System.out.println(s+" "+"我是 String 的");
}
public void hwc_1(Double b){
System.out.println(b+" "+"我是doble 的");
}
}
输出 结果是
23 我是int 的
hah 我是 String 的
232.2 我是doble 的
方法 的重载 指向了面向 对象 编程里面的重要的组成 部分 就是 多态!
什么是java方法重写
方法的重写:
1、在子类中可以根据需要对从基类中继承来的方法进行重写。
2、重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。
3、重写方法不能使用比被重写的方法更严格的访问权限。
如下:
class Person{ private int age; private String name; public void setAge(int age){ this.age = age; } public void setName(String name){ this.name = name; } public int getAge(){ return age; } public String getName(){ return name; } public String getInfo(){ return "Name is:"+name+",Age is "+age; } } class Student extends Person{ private String school; public void setSchool(String school){ this.school = school; } public String getSchool(){ return school; } public String getInfo(){ return "Name is:"+getName()+",Age is "+getAge()+",School is:"+school; } } public class TestOverRide{ public static void main (String args[]){ Student student = new Student(); Person person = new Person(); person.setAge(1000); person.setName("lili"); student.setAge(23); student.setName("vic"); student.setSchool("shnu"); System.out.println(person.getInfo()); System.out.println(student.getInfo()); } }
最新文章
- 自助式BI为何能取代传统BI,逐渐占据商业智能市场?
- Java集合之TreeMap
- javascript中||和&;&;代替if
- BZOJ-1699 Balanced Lineup 线段树区间最大差值
- spring全注解项目
- SSN 社会安全号码
- J​a​v​a​S​c​r​i​p​t​针​对​D​o​m​相​关​的​优​化​心​得
- [MSDN] GROUP BY (Transact-SQL)
- BZOJ 1820: [JSOI2010]Express Service 快递服务( dp )
- python对web服务器做压力测试并做出图形直观显示
- Knockout应用开发指南 第六章:加载或保存JSON数据
- HTML之 一 标签
- CentOS搭建FTP服务
- 配置opensips经验总结
- java下使用chromedriver获取访问页面状态码
- Java虚拟机笔记(二):GC垃圾回收和对象的引用
- Loadrunner参数化逗号报错解决方法
- 如何在.Net的MySqlCommand里面使用MySql用户自定义变量?
- JDK 1.7版本的 新特性
- markdown 表格宽度调整
热门文章
- [总结] 二维ST表及其优化
- “Location of the Android SDK has not been set up in the preferences”问题的解决
- windows10不能修改hosts解决方案(亲测)
- [译文]Domain Driven Design Reference(一)—— 前言
- Java虚拟机-内存tips
- CSS样式渐变代码,兼容IE8
- Android动态字符串拼接----%s
- mybatis源码解读(四)——事务的配置
- 和同门一起做的PHP网站
- Java开源生鲜电商平台-支付模块的设计与架构(源码可下载)