Что значит эта конструкция в main? Тут создаем объект типа интерфейса ATable где сразу переопределяем его методы? Почему в конце стоит ; ? ----------------------------------------------------------
ATable aTable = new ATable() {
            @Override
            public String getCurrentUserName() {
                return "Amigo";
            }

            @Override
            public String getTableName() {
                return "DashboardTable";
            }
        };
// почему тут ставят ' ; ' ? ---------------------------------------------------------- Большое спасибо! Весь код: ----------------------------------------------------------
public class Solution {
    public static void main(String[] args) {
        ATable aTable = new ATable() {
            @Override
            public String getCurrentUserName() {
                return "Amigo";
            }
            @Override
            public String getTableName() {
                return "DashboardTable";
            }
        };

        BTable table = new TableAdapter(aTable);
        System.out.println(table.getHeaderText());
    }
    public static class TableAdapter implements BTable {
    	private ATable aTable;
    	TableAdapter(ATable tableA){
    		this.aTable = tableA;
    	}
		@Override
		public String getHeaderText() {
			return  ( "[" + this.aTable.getCurrentUserName() + "]" + " : " + this.aTable.getTableName() );
		}
    }
    public interface ATable {
        String getCurrentUserName();
        String getTableName();
    }
    public interface BTable {
        String getHeaderText();
    }
}