Java多态(利用向上向下转型和反射机理)

发布时间:2017-1-16 18:45:43 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"Java多态(利用向上向下转型和反射机理)",主要涉及到Java多态(利用向上向下转型和反射机理)方面的内容,对于Java多态(利用向上向下转型和反射机理)感兴趣的同学可以参考一下。

Java多态(利用向上向下转型和反射机理)     //基类:         public class Polymorphism {            public int book=6;            public void base(){                System.out.println("父类的普通方法");            }            public void test(){                System.out.println("父类的被覆盖的方法");            }                }        //子类                 import java.lang.reflect.InvocationTargetException;        import java.lang.reflect.Method;                public class SubClass extends Polymorphism {                    public String book="子类的book";                        @Override            public void test() {            System.out.println("子类的覆盖父类的方法");            }            public void sub(){                System.out.println("子类特有的独特方法");            }                    public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {                                Polymorphism bs=new Polymorphism();                System.out.println(bs.book);                bs.base();                bs.test();                SubClass sc=new SubClass();             //通过引用变量来访问其包含的实例属性时,系统总是试图访问它编译时类所定义的属性,而不是它运行时类所定义的属性               System.out.println(sc.book);             sc.test();          sc.base();          sc.sub();            Polymorphism py=new SubClass();          System.out.println(py.book);          py.base();   py.test();          //利用向下转型可以访问子类特有方法           SubClass ss=(SubClass)py;          ss.sub();          //利用反射也可以          Method[] cla=py.getClass().getMethods();   int i=1;        for(Method mth:cla){            System.out.println(i+":");            System.out.println(mth.toString()+":"+mth.getName());//省略             if(mth.getName()=="sub"){                System.out.println("*********");                mth.invoke(py, null);//执行子类特有的方法体                 break;            }            i++;                 }   }  }   

上一篇:Notepad++快捷键
下一篇:android 用Pull 读取XML

相关文章

相关评论