我对java的学习有一年了吧,由于学习的间断性,对java面向对象的细节方面还很欠缺,对继承、多态、接口还有待更加深刻的了解,今天通过一个小小的例题,让我对多态有了比较深刻的了解:
此程序输出结果是
Descend.amethod()
1
Descend.amethod()
Descend继承Base,程序一开始就利用了多态new 了一个Descend子类,然后又将此子类赋值给父类b,在生成子类时要调用父类的构造函数,又因为子类重写了父类的方法amethod()方法,所以在执行父类构造方法中的amethod()时,这个方法就属于子类的方法,至于输出1的问题,是程序在编译阶段就指定了‘i’就是父类中的‘i’,即在执行Base b=new Descend()时就指定了父类中的i。