Вызов методов классов через переменную в интерфейсе

Недавно нашел одну непростую для меня задачку.

Eсть три класса: Foreign professional, Professional, usual people, а также интерфейс People, в котором есть метод talk (он переопределен в выше перечисленных дочерних классах). Метод выводит в консоль фразу, в зависимости от класса: ForeignProfessoinal:

  • Я иностранный профессионал

Professional

  • я профессионал

Usual people

  • я обычный человек

Задача состоит в том, чтобы создать List<String>, в котором через консоль нужно ввести его размерность. В последствии этот лист должен выдать эти фразы в рандомном порядке.

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args){
    Professionals prof = new Professionals();
    ForeignProfesionals ForProf = new ForeignProfesionals();
    UsualPeople UsPeople = new UsualPeople();

    Scanner scanner = new Scanner(System.in);

        List<String> list = new ArrayList<String>();

Interface:
public interface People {
    
    public void talk();
}

Class ForeignProfessionals:

public class ForeignProfesionals implements People{
    @Override
    public void talk() {
        System.out.println("Я иностарнный профессионал");
    }
}

Ответы (1 шт):

Автор решения: Gringo

попробуйте так .создать свой лист классов место String вставить List mainList;. и уже из списка вызывать нужный getName(). и уже отдельно работать с каждым классом .

→ Ссылка