OVERLOADING IN INHERITANCE : So I came across this concept of overloading resolution while studying Dynamic programming but I am having trouble understanding this. The statement goes like this-
"If the compiler cannot  find any method with matching parameter type or if multiple methods all match after applying conversions(casts) the compiler reports an error"

I tried verifying the statement with help of an example and it goes like following-

    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);
    }
    }

outcome was 
Inside ClassB value--->value of a is 3.0 
Inside ClassB value--->value of a is 3.0


My doubt is I expected a compile time error as 
ClassB b= new ClassB();
 
b has multiple methods with matching paramters
