Por que, embora possa receber um Object
como parâmetro, o método println()
ainda possui sobrecargas que recebem objetos de tipos específicos, como String e boolean?
Por que, embora possa receber um Object
como parâmetro, o método println()
ainda possui sobrecargas que recebem objetos de tipos específicos, como String e boolean?
Olá Heron!
O método println()
tem vários construtores e cada um deles recebe um tipo de argumento diferente. Ao fazer System.out.println(instanciaDoMeuObjeto);
, o compilador consegue processar esse objeto, pois todos objetos que são criados, estendem (implicitamente) a classe Object
, inclusive os tipos como String, boolean, int.
System.out.println(42);
chama o construtor que recebe um argumento int
e assim por diante.
Para uma leitura mais densa, mas com muitas informações, seguem os links da documentação do Java:
https://docs.oracle.com/javase/8/docs/api/index.html
https://docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html#println-- (Esse link mostra as sobrecargas do println()
).
Espero ter ajudado!