0 votos
public class Main {

    public static void main(String[] args) {

        Estado Coahuila = new Estado("Coahuila", 3147479, 360, 151571, "Miguel Ángel Riquelme Solís");
        Pais Mexico = new Pais("Mexico", 126014024, 0, 1973000);

        Coahuila.Mostrar_Datos();

        Coahuila.porcentaje_poblacion_nacional();

    }
}



este es mi main en una subclase uso un método para sacar el promedio de población nacional entonces necesito usar los dos valores que se guardan en población, pero nose como elegir cuál estoy usando si el de país o el de estado

por en Java

1 Respuesta

0 votos
Buenas Brayan.

En el código estás usando el del Estado (pues Coahuila es un objeto de tipo Estado).

Por otro lado, no sé si te entiendo y te refieres a que ¿Pais y Estado son abstractos de una clase padre común que tenga el método "porcentaje_poblacion_nacional"? ¿Es así?
por

Estado Y País Son de diferentes clases estado hereda de país Nombre, población, etc.

en mi main estado tiene su poblacion y pais su poblacion

en el metodo "porcentaje_poblacion_nacional" yo multiplico la poblacion del estado por la del pais pero al poner en el codigo
 

public void porcentaje_poblacion_nacional() {
        int Porcentaje;
        
        Porcentaje = getPoblacion() * 100 / getPoblacion();

        System.out.println("El Porcentaje De Poblacion Nacional Es: " + Porcentaje);
    }



 

solo me arroja 100 debido a que los dos "getPoblacion()" tienen el mismo valor y nose como hacer que el segundo getPoblacion() tome la poblacion del pais

Al llamar a "get_poblacion()" dentro de un mismo objeto, solo llamas al del objeto (por lo que siempre te devolverá el mismo valor).

Si quieres que se obtengan valores de métodos con el mismo nombre de objetos diferentes (independientemente de si se heredan o no), tienes que obtenerlo de cada uno de los objetos, por lo que se lo tendrás que pasar (al menos el de país, si el método getpoblacion() lo llamas desde dentro del mismo método del objeto Estado que veo que haces), algo así:

public void porcentaje_poblacion_nacional(Pais p) {
    int Porcentaje;
    
    Porcentaje = getPoblacion() * 100 / p.getPoblacion();
    System.out.println("El Porcentaje De Poblacion Nacional Es: " + Porcentaje);
}

Y a la hora de llamar al método se le tienes que pasar el País (que tiene los datos deseados):

public class Main {
 
    public static void main(String[] args) {
 
        Estado Coahuila = new Estado("Coahuila", 3147479, 360, 151571, "Miguel Ángel Riquelme Solís");
        Pais Mexico = new Pais("Mexico", 126014024, 0, 1973000);
        
        //...

 
        Coahuila.porcentaje_poblacion_nacional(Mexico);
 
    }
}