在java多态中,编译看左边,运行看右边是什么意思,哪位大侠能帮忙详细解释一下 谢谢了.
如下这段文字,是什么意思?在多态中,向上转型和向下转型有很多的应用。例如:1:Animalc=newCat();//类型提升,向上转型在编译时:参阅引用型变量所属类中是否...
如下这段文字,是什么意思?
在多态中,向上转型和向下转型有很多的应用。
例如: 1: Animal c = new Cat(); //类型提升,向上转型
在编译时:参阅引用型变量所属类中是否有调用的方法。如果有。编译通过,没有编译失败
在运行时:参阅对象所属类中是否有调用方法。
简单一句话:成员函数在多态时,编译看左边,运行看右边。
2: 如果想要调用猫的特有方法,如何操作?
强制将父类的引用,转成子类类型。向下转型
Cat c = (Cat)a;
c.catchMouse();
3: 在多态中,调用子类函数,子类方法必须覆盖父类中的方法,如果调用子类特有的方法,就必须向下转型了。
这样非静态的方法可直接调用。
在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类,)
在多态中,静态成员函数的特点:
无论编译和运行,都参考做左边。 展开
在多态中,向上转型和向下转型有很多的应用。
例如: 1: Animal c = new Cat(); //类型提升,向上转型
在编译时:参阅引用型变量所属类中是否有调用的方法。如果有。编译通过,没有编译失败
在运行时:参阅对象所属类中是否有调用方法。
简单一句话:成员函数在多态时,编译看左边,运行看右边。
2: 如果想要调用猫的特有方法,如何操作?
强制将父类的引用,转成子类类型。向下转型
Cat c = (Cat)a;
c.catchMouse();
3: 在多态中,调用子类函数,子类方法必须覆盖父类中的方法,如果调用子类特有的方法,就必须向下转型了。
这样非静态的方法可直接调用。
在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类,)
在多态中,静态成员函数的特点:
无论编译和运行,都参考做左边。 展开
展开全部
从这里来看.编译的时候就是验证Animal是否有这个接口,(左边)
运行的时候 a实际上是Cat.(Cat 是 Animald的实现类)
实际是要运行Cat的实现方法.(右边)
说的比较乱..
运行的时候 a实际上是Cat.(Cat 是 Animald的实现类)
实际是要运行Cat的实现方法.(右边)
说的比较乱..
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用太计较这些东西
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询