本文主要是介绍Java中重载和重写区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、重载
(1)方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。
重载Overloading是一个类中多态性的一种表现。
(2)方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。
(3)重载的时候,方法名要一样,但是参数类型或者个数不一样(必须要有一个不一样),返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。
例子:
类:
package com.tuyao.overwritedemo;
public class Superdemo
{
public float name()
{
System.out.println("父类");
return 10;
}
}
类:
package com.tuyao.overwritedemo;
public class Overwritedemo extends Superdemo
{
public void name(int a )
{
System.out.println("学生");
}
public int name(int b,int c )
{
System.out.println("教师");
return 1;
}
public static void main(String args[])
{
Overwritedemo ov=new Overwritedemo();
ov.name(1,1);
ov.name(1);
}
}
输出:
教师
学生
明显第一个调用的方法和第二个调用的方法不一样
二、重写
(1)方法重写又叫方法覆盖,是父类与子类之间的多态性,重写就是对父类函数进行重写定义
(2)子类要求与父类有相同的名称,参数
(3)子类的访问权限不能少于父类
说明:子类要求比父类的修饰符范围要大或者相等才行,当然父类不能用private(体现了多态性)
例子:
类:
package com.tuyao.overwritedemo;
public class Superdemo
{
public void name()
{
System.out.println("人类");
}
}
类:
package com.tuyao.overwritedemo;
public class Overwritedemo extends Superdemo
{
public void name( )
{
System.out.println("学生");// 重写部分
}
public static void main(String args[])
{
Overwritedemo ov=new Overwritedemo();
ov.name();
}
}
输出:学生
说明调用的是子类的name()方法
这篇关于Java中重载和重写区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!