Duvida em metodo na classe

Olá pessoal ,

estou em duvida por que quando coloco na linha do comando :
b2.method(‘6’);

uma string ele não chama o metodo :

public void method(String s) 

Sempre chama o metodo da classe Base …

Se alguém puder me ajudar agradeceria !!!

abs

public class Base {
	
	 public void method(int i) {
	 System.out.println("Base...Value is " + i);
	 }
}



public class Sub extends Base {

	
	public void method(int j) {
		 System.out.println("Sub...This value is " + j);
	}
    public void method(String s) {
		 System.out.println("Sub...I was passed " + s);
	}
    
	public static void main(String args[]) {
		 Base b1 = new Base();
		 Base b2 = new Sub();
		 b1.method(5);
		 b2.method(6);

		  
		 }
}

você tem que mudar o trecho de código que está destacado em vermelho abaixo…

public static void main(String args[]) {
Base b1 = new Base();
[color=“red”]Sub b2 = new Sub();[/color]
b1.method(5);
b2.method(6);

[code]
public class Base {

public void method(int i) { 
System.out.println("Base...Value is " + i); 
} 

}

public class Sub extends Base {

public void method(int j) {
System.out.println("Sub…This value is " + j);
}
public void method(String s) {
System.out.println("Sub…I was passed " + s);
}

public static void main(String args[]) {
Base b1 = new Base();
Sub b2 = new Sub();
b1.method(5);
b2.method(6);

   } 

} [/code]

O que eu acho que aconteceu é que ‘6’ não é uma String, é um char.
E como char é um inteiro, ele vai chamar a versão que recebe um int.

Tente chamar com “6” (aspas duplas) pra ver o que acontece.