こんにちは。最近Java SE8 Programmerの試験の勉強をしております。実務はほとんどゼロで、この資格でプログラミングの勉強をしている感じです。
その中で気になった点があるので質問させて頂きます。
java
1interface Worker{ 2 void work(); 3} 4 5class Employee{ 6 public void work(){ 7 System.out.println("work"); 8 } 9} 10 11class Engineer extends Employee implements Worker{} 12 13public class Main{ 14 public static void main(String[] args){ 15 Worker worker = new Engineer(); 16 worker.work(); 17 } 18}
このコードを入力すると、workと表示されて終わると思います。
自分の疑問点としてはEngineerインスタンスをEngineer型で扱っても問題なくプログラムは動くと思いますが、EngineerインスタンスをWorker型として扱おうとしている理由がわかりません。このコードに限らず、こういったことをする理由・利点はあるのでしょうか?
またこちらは確認ですが、WorkerインスタンスをEngineer型として扱うことはできないという認識でまちがいないでしょうか?もし簡単であれば説明していただけるとありがたいです。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。