Ребят , не пойму почему мы имеем право писать так System.out.println(beer.toString()) - вызывать метод toString() - ведь при создании объекта мы записали ссылку на него в Drink Drink beer = new AlcoholicBeer() - то есть мы можем вызвать у этого объекта только те методы которые определены в Drink - то есть только isAlcoholic() , но компилятор и toString() пропускает - почему так ?
package com.javarush.task.task13.task1302;

/*
Пиво-2. Возвращение
*/

public class Solution {
    public static void main(String[] args) throws Exception {
        Drink beer = new AlcoholicBeer();
        System.out.println(beer.toString());
    }

    public interface Drink {
        boolean isAlcoholic();
    }

    public static class AlcoholicBeer implements Drink{
        public boolean isAlcoholic(){return true;}

        public String toString() {
            if (isAlcoholic()) {
                return "Напиток алкогольный";
            } else {
                return "Напиток безалкогольный";
            }

        }

    }
}