有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

继承中的java重载

所以我在学习动态规划时遇到了重载解析的概念,但我很难理解这一点。声明是这样的- “如果编译器找不到任何具有匹配参数类型的方法,或者如果多个方法在应用转换(强制转换)后都匹配,编译器将报告错误”

我试着用一个例子来验证这个说法,结果如下-

public class OverloadingResolution{
    public static void main(String[] args){
        ClassB b= new ClassB();
        b.check(3);
        ClassB c=new ClassC();
        c.check(3)
    }
}

class ClassA{
    public void check(float a){
        System.out.println("Inside ClassA----> value of a is"+a);
    }
}

class ClassB extends ClassA{
    public void check(float a){
        System.out.println("Inside ClassB----> value of a is"+a);
    }
}

class ClassC extends ClassB{
    public void check(short a){
        System.out.println("Inside ClassC----> value of a is"+a);
    }
}

结果是:
内部B类值-->;a的值为3.0
内部B类值-->;a的值为3.0

我的疑问是,我预期会出现编译时错误ClassB b= new ClassB();,因为b有多个具有匹配参数的方法


共 (0) 个答案