「Java」「Interface」 instanceof來判斷是否有實作interface
Given:
interface Interface{ //Interface inter1 = new Super();//錯誤,Cannot convert Super to Interface //Super sup1 = new Interface();//錯誤,Cannot convert Interface to Super } class Super{ //Interface inter1 = new Super();//正確,假如父類別繼承Interface //Super sup1 = new Interface();//錯誤,Cannot convert Interface to Super } public class Sub extends Super implements Interface{ public static void main(String[] args) { Interface inter = new Sub(); System.out.println(inter instanceof Object); System.out.println(inter instanceof Interface); System.out.println(inter instanceof Super); System.out.println(inter instanceof Sub); Super sup = new Sub(); System.out.println(sup instanceof Object); System.out.println(sup instanceof Interface); System.out.println(sup instanceof Super); System.out.println(sup instanceof Sub); Sub sub = new Sub(); System.out.println(sub instanceof Object); System.out.println(sub instanceof Interface); System.out.println(sub instanceof Super); System.out.println(sub instanceof Sub); Interface inter1 = new Super();//錯誤,Cannot convert Super to Interface //但如果父類別繼承interface,此行即可編譯成功。 Super sup1 = new Interface();//錯誤,Cannot convert Interface to Super Sub sub1 = new Interface();//錯誤,Interface is not a Sub Sub sub2 = new Super();//錯誤,Super is not a Sub } }
留言
張貼留言