FooService service = (FooService) obj;
参考書に描いてあるinstanceof
演算子の勉強中にこの処理は何をしているのだろうと思い質問しました。
上記のコードの横の説明にはobjはFooServiceであるため、キャストが可能と書いてありました。
あと、 Object obj = new FooService("hello");
の部分で Objectクラスのことを調べたのですが、イマイチ理解できなかったのでその説明もあるとありがたいです。
理解できないコード
FooService service = (FooService) obj;
該当のソースコード
java
1public class FooService extends AbstractBaseService { 2 3 public FooService(String name) { 4 super(name); 5 } 6 7 @Override 8 public String say() { 9 return "Hello"; 10 } 11 12} 13
java
1public interface BaseService { 2 3 public String say(); 4 5}
java
1public abstract class AbstractBaseService implements BaseService { 2 3 protected String name; 4 5 public AbstractBaseService(String name) { 6 this.name = name; 7 } 8 9}
java
1public class Tryout { 2 public static void main(String...args) { 3 4 Object obj = new FooService("hello"); 5 6 System.out.println(obj instanceof FooService); 7 System.out.println(obj instanceof AbstractBaseService); 8 System.out.println(obj instanceof BaseService); 9 System.out.println(obj instanceof Integer); 10 System.out.println(obj instanceof FooService); 11 12 if(obj instanceof FooService) { 13 FooService service = (FooService) obj;// ここがわかりません。 14 System.out.println(service.say()); 15 } 16 } 17 18} 19
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/06 16:32
2018/03/07 00:26
2018/03/07 06:50