import java.util.* ; class Employee { int id; public Employee() { } public void method1( float x1P ) { System.out.println( "Overloaded 1.") ; } public void method1( char ch1P , int x1P ) { System.out.println( "Overloaded 2.") ; } //valid public void method1( int x1P , char ch1P ) { System.out.println( "Overloaded 4.") ; } //Overloaded method must differ in arguments and not //just return type. /* public int method1( int x1P , char ch1P ) { System.out.println( "Overloaded 5.") ; } */ } public class Overloaded1 { public static void main( String args[] ) { Employee employeeObject = new Employee() ; employeeObject.method1( 'A' , 21 ) ; //Invalid //employeeObject.method1( 65 , 21 ) ; //ok int gets promoted to float employeeObject.method1( 24 ) ; //narrowing is invalid //double cannot be narrowed to float //incompatible types: possible lossy conversion from double to float //employeeObject.method1( 24.6 ) ; } //public static void main( String args[] ) }