「java方法重载如何实现」Java方法的重载
本篇文章给大家谈谈java方法重载如何实现,以及Java方法的重载对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
在java中是如何规定方法重载的?
方法重载说简单点就是方法的权限、返回值类型、方法名都一样,根据参数的个数或类型不一样,这就是方法重载。
比如说:
public void print(String str){}
public void print(int i){}
public void print(String str[]){}
public void print(String str, int i){}
就是这种。
java方法重载和方法重写的例子
下面将分别讲解重载与重写:
1、重载overloading
1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载是一个类中多态性的一种表现。
2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型给它们的不同参数个数和参数类型给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。
3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。
示例代码:
public class Dog {
Dog()
{
this.bark();
}
void bark()//bark()方法是重载方法
{
System.out.println("no barking!");
this.bark("female", 3.4);
}
void bark(String m,double l)//注意:重载的方法的返回值都是一样的,
{
System.out.println("a barking dog!");
this.bark(5, "China");
}
void bark(int a,String n)//不能以返回值区分重载方法,而只能以“参数类型”和“类名”来区分
{
System.out.println("a howling dog");
}
public static void main(String[] args)
{
Dog dog = new Dog();
//dog.bark();
//dog.bark("male", "yellow");
//dog.bark(5, "China");
}
}
2、重写overriding
1) 父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
2) 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。
3) 子类函数的访问修饰权限不能少于父类的;
示例代码:
public class Base
{
void test(int i)
{
System.out.print(i);
}
void test(byte b)
{
System.out.print(b);
}
}
public class TestOverriding extends Base
{
void test(int i)
{
i++;
System.out.println(i);
}
public static void main(String[]agrs)
{
Base b=new TestOverriding();
b.test(0)
b.test((byte)0)
}
}
这时的输出结果是1 0,这是运行时动态绑定的结果。
java方法重载
方法重载:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。
方法名相同
方法的参数类型,个数顺序至少有一项不同
方法的返回类型可以不相同
方法的修饰符可以不相同
main方法也可以被重载
这里有更详细的
java方法的重载
方法重载概述
– 在同一个类中, 允许存在一个以上的同名方法, 只要它们
的参数个数或者参数类型不同即可。
• 方法重载特点
– 与返回值类型无关, 只看方法名和参数列表
– 在调用时, 虚拟机通过参数列表的不同来区分同名方法
复制代码
package method.methodchongzai;
public class MethodChongZai {
public static void main(String[] args) {
int a = 1;
int b = 2;
int c = 3;
System.out.println(sum(a,b,c));
System.out.println(sum(a,b));
}
public static int sum(int a,int b) {
int c = a + b;
return c;
}
public static int sum(int a,int b,int c){
int d = a + b + c;
return d;
}
}
复制代码
输出如下:
复制代码
package method.methodchongzai;
public class ChongZai2 {
public static void main(String[] args) {
//定义变量
int a = 10;
int b = 20;
//求和方法
int result = sum(a,b);
System.out.println("result:"+result);
//定义变量
int c = 30;
//求和方法
//int result2 = sum2(a,b,c);
int result2 = sum(a,b,c);
System.out.println("result2:"+result2);
}
//不能出现方法名相同,并且参数列表也相同的情况
// public static int sum(int x,int y) {
// return x + y;
// }
public static float sum(float a,float b) {
return a + b;
}
//求三个数据的和
/*
public static int sum2(int a,int b,int c) {
return a + b + c;
}
*/
public static int sum(int a,int b,int c) {
return a + b + c;
}
//求两个数据的和方法
public static int sum(int a,int b) {
//int c = a + b;
//return c;
return a + b;
}
}
复制代码
输出结果:
java 程序编写 方法重载
package test;
public class AreaTest {
public static void main(String[] args) {
AreaTest test = new AreaTest();
Area a = test.new Area();
System.out.println("圆的面积为:"+a.calArea(4));
System.out.println("长方形面积为:"+a.calArea(10, 5));
System.out.println("梯形面积为:"+a.calArea(5, 10, 6));
}
class Area {
// 半径
private double r;
// 长
private double l;
// 宽
private double w;
// 高
private double h;
// 圆的
public double calArea(double r) {
return Math.PI * Math.pow(r, 2);
}
// 长方形的
public double calArea(double l, double w) {
return l * w;
}
// 梯形,用宽做上底,长做下底
public double calArea(double w, double l, double h) {
return (w + l) * h / 2;
}
}
}
Java编写程序实现方法重载。
因为你没有指定数据类型,所以默认用int类型给你,double或者float等等都一样,只是数据类型改一下而已。
public class Test {
public int max(int a, int b) {
int intMax = Math.max(a, b);
return intMax;
}
public int max(int a, int b, int c) {
// 可以直接调用本类的max(int a, int b)方法,起到代码重复利用效果
int intMax = max(a, b);
intMax = max(intMax, c);
return intMax;
}
public static void main(String[] args) {
Test t = new Test();
System.out.println(t.max(2, 1));
System.out.println(t.max(2, 6, 5));
}
}
关于java方法重载如何实现和Java方法的重载的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-29,除非注明,否则均为
原创文章,转载请注明出处。