java方法重载代码 java方法重载简单代码

java中方法的重载是什么意思?覆盖是override方法重写重载是overload
按照教科书上的定义,重载就是具有相同函数名,返回类型可以不同,参数个数、顺序、类型不同的函数 。我的理解是重载是发生在两个或者是更多的函数具有相同的名字的情况下 。
重写就是覆盖父类的方法,和父类有相同返回类型,参数 , 甚至是抛出的异常,重写方法不能为private , 运用中最典型的就是对接口方法的覆盖 。方法的重写Overriding和重载Overloading是Java多态性的不同表现.
重写Overriding是父类和子类之间多态性的一种表现;如果在子类中定义某方法和其父类有相同的名称和参数,我们说该方法被重写(Overriding).子类的对象使用这个方法时,将调用子类中的定义,对他而言,父类中的定义如同被"屏蔽"了.
重载Overloading是个类中多态性的一种表现;如果在一个类中定义了多个同名的方法,他们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading).重载的方法是能改动返回值的类型.
现实例子:你对比上面看,比如一老爹是木工 。儿子继承老爹也是木工 。
老爹有个做柜子的独特技术(方法),只需要用到工具锤子和木头(参数),
儿子根据老爹这个做柜子的技术延伸出很多种技术,他懒得再起名就也对外宣称叫做柜子独特技术 。
1个继承自老爹,相同的方法名,相同的工具,但有自己的想法,工序有改动 。儿子做木工活用到这个技术方法的话就叫重写 。
另外的自创,但也叫做柜子独特技术,但用工具不同有:
木头 。(儿子牛,不用锤子照样做柜子 。。。)
锯子,木头 。(也是木头柜子)
【java方法重载代码 java方法重载简单代码】锤子 , 铁皮 。(铁皮柜子)
以上3中为重载 。
明白?不明白给我发消息 。呵呵~
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在接口中定义两个重载方法为什么会找不到正确的重载无效
1、当谈论参数列表时 , 不讨论方法的返回类型 。
2、如果两种方法有相同的名称、相同的参数和不同的返回类型 , 那么这不是一种有效的方法重载,将导致编译错误 。

推荐阅读