30. instanceof演算子

30. instanceof演算子

実装の確認

lesson 074

class Lesson074 {
    public static void main(String args[]) {
        super_class naru   = new super_class("成瀬川なる" , 17);
        super_class sinobu = new sub_class(  "前原しのぶ" , 13);
        sub_class   motoko = new sub_class(  "青山素子" ,   15);

        if (naru   instanceof HINA) naru.write(  naru.name ,   naru.age);
        if (sinobu instanceof HINA) sinobu.write(sinobu.name , sinobu.age);
        if (motoko instanceof HINA) motoko.write(motoko.name , motoko.age);
    }
}

interface HINA {
    void write(String str , int age);
}

class super_class {
    String name;
    int    age;

    public void write(String str , int age) {
        System.out.println(str + "\t" + age);
    }

    super_class(String name , int age) {
        this.name = name;
        this.age  = age;
    }
}

class sub_class extends super_class implements HINA {
    public void write(String str , int age) {
        System.out.println(str + "\t" + age);
    }

    sub_class(String str , int age) {
        super(str , age);
    }
}

実行結果

L:\>java Lesson074
前原しのぶ 13
青山素子 15

あるクラスのオブジェクトかどうか

lesson 075

class Lesson075 {
    public static void main(String args[]) {
        super_class naru   = new super_class("成瀬川なる" , 17);
        super_class sinobu = new sub_class(  "前原しのぶ" , 13);
        sub_class   motoko = new sub_class(  "青山素子" ,   15);

        if (naru   instanceof sub_class) naru.write(  naru.name ,   naru.age);
        if (sinobu instanceof sub_class) sinobu.write(sinobu.name , sinobu.age);
        if (motoko instanceof sub_class) motoko.write(motoko.name , motoko.age);
    }
}

interface HINA {
    void write(String str , int age);
}

class super_class {
    String name;
    int    age;

    public void write(String str , int age) {
        System.out.println(str + "\t" + age);
    }

    super_class(String name , int age) {
        this.name = name;
        this.age  = age;
    }
}

class sub_class extends super_class implements HINA {
    public void write(String str , int age) {
        System.out.println(str + "\t" + age);
    }

    sub_class(String str , int age) {
        super(str , age);
    }
}

実行結果

L:\>java Lesson075
前原しのぶ 13
青山素子 15