在方法重载中做所有可能的 int + double 组合

Doing all possible int + double combination in method overloading

所以我们老师给了我们这个方法重载的例子

//getting perimeter of Triangle

public int getPerimeter(int a, int b, int c){
    return a + b + c;
}
public double getPerimeter(double a, int b, int c){
    return a + b + c;
}
public double getPerimeter(int a, double b, int c){
    return a + b + c;
}
public double getPerimeter(int a, int b, double c){
    return a + b + c;
}
public double getPerimeter(double a, double b, int c){
    return a + b + c;
}
public double getPerimeter(int a, double b, double c){
    return a + b + c;
}
public double getPerimeter(double a, int b, double c){
    return a + b + c;
}
public double getPerimeter(double a, double b, double c){
    return a + b + c;
}

在我看来,第一种和最后一种方法还不够吗?我认为第一个和最后一个之间的方法是冗余重载,因为整数和双精度的混合将被具有全双精度参数的方法接受。

谁能告诉我这样编码的目的是什么?

请记住,学校通常会尝试教授概念,并且通常重视代码说明这些概念的能力而不是其实用性。

考虑到这一点,您断言您在现实世界中不太可能像这样过载是正确的;然而,同样值得注意的是,在现实世界中,您可能不会编写一个专门用于将 3 个数字相加的方法。

我认为这个练习做得很好的一件事是有助于阐明超载的实际限制。例如,假设必须支持跨 10 个不同参数的 10 种不同类型的每种组合。