申論 4請依據以下Java程式碼回答下列問題:01import java.util.Scanner;02public class MyJavaCode {03public static void main(String[] args) {04Scanner in = new Scanner(System.in);05int a = in.nextInt();06Animal dog = new Dog();07dog.run(a);08dog.run();09}10}12class Dog extends Animal {13public void run(int units){14System.out.println("Dog's running speed is " + units);15}16public void run(){17System.out.println("Dog's default running speed is 20");18}19}㈠請說明Java中class、abstract class與interface之間的主要差異?(10分)㈡請說明上述程式碼那幾行會產生編譯錯誤,以及錯誤的原因。(5分)㈢不改變原1-19行程式碼順序的條件下,請修正問題㈡之編譯問題,使之可以正常執行。修正不包含左右大括號「{}」,新增或修改之指令行數不可以超過3行。(10分)