首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于对象多态性,不太理解解决方案

2012-05-13 
关于对象多态性,不太理解Java codeclass A{public void fun1(){System.out.println(A中方法)}}class B

关于对象多态性,不太理解

Java code
class A{    public void fun1(){        System.out.println("A中方法");    }}class B extends A{    public void fun1(){    System.out.println("B中方法1");    }    public void fun2(){        System.out.println("B中方法2");    }}public class test02{    public static void main(String args[]){         A a = new B();         a.fun1();            }}


很简单的代码,只是不明白为什么a调用fun1()方法后为什么出现的是"B中方法1",这里不是已经把a变成父类A中的实例了么?
A a = new B()这个一直不是很理解,希望高手能给讲下,谢谢!

[解决办法]
A a = new B();

//这种对象实例化方法叫做“对象上转型”

// 即:用父类(A)声明对象(a),用子类(B)去实例化(new)对象(a)

//对象上转型特点:对象(a)只能调用父类(A)中的成员或方法。不能调用父类中没有的方法!

//如果父类中的成员或方法被子类覆盖了(被重写),则调用子类的方法。

//当调用 fun1()时发现其被子类重写了,所以调用子类的 fun1();

热点排行