永发信息网

B是A的子类,那么A a=new B();这样有什么意义

答案:1  悬赏:20  手机版
解决时间 2021-04-01 07:57
  • 提问者网友:我没有何以琛的痴心不悔
  • 2021-03-31 23:01
B是A的子类,那么A a=new B();这样有什么意义
最佳答案
  • 五星知识达人网友:爱难随人意
  • 2021-03-31 23:55
举个例子比如有这样一个方法:f(A a){a = new B();
a.method(); //method()也是父类A中的方法。}这样,运行时会动态绑定,程序自动调用子类B中相应的method()方法。在开发时这一点很有用处,设计时只需定义好接口f( A ),小组成员都依据这个定义编写f( A )。程序自己会动态的调用A的子类的相应方法,而不需为那些子类分别写一个f()函数。
比如:A表示平面图形基类。B,C,D分别为三角形、正方形、圆形类,都包含计算面积的area()方法。
f( A a )为一个计算涂一个平面图形所需的染料的质量。(设每单位面积用a克染料)
如果没有上述的多态机制,程序可能得这样写。
double f( B b) { return b.area()*a};
相应的还要写f( C c) ; f( D d)
在运行时 你传给他那个类型 就自动调用那个类型的相应的方法
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯