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