Shape 型の draw() が呼ばれる」ことしか決まっていませんが、プログラム実行時(ランタイム)にヒープ上の実際のインスタンス型が判定され、オーバーライドされた適切な子クラスのメソッドへと動的に実行ルートが接続されます。
ポリモーフィズムを適用する際、変数の型(型アノテーション)によって「呼び出し可能なメソッドの範囲(アクセスできる限界)」が決定され、オブジェクトの実体(インスタンス)によって「実際に実行される処理の中身」が決定されるという2段階のルールを理解することが極めて重要です。