B是A的子类,那么A a=new B();这样有什么意义
来源:学生作业帮 编辑:神马作文网作业帮 分类:数学作业 时间:2024/11/12 16:57:16
B是A的子类,那么A a=new B();这样有什么意义
举个例子比如有这样一个方法: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)
在运行时 你传给他那个类型 就自动调用那个类型的相应的方法
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)
在运行时 你传给他那个类型 就自动调用那个类型的相应的方法
B是A的子类,那么A a=new B();这样有什么意义
A,B 是两个类B是A的子类 A*pa=new A(8); B*pb=new B(3,2); pa=pb;这三句话什么意
假设A是类B的父类,声明中:A x =new B();有什么意义嘛?为什么B x=new A();就不对了
类声明中,指明该类不能有子类的是() A public B abstract C final D class
在c#中,定义两个类A,B,且B:A,那么A a = new
A,B是两个不同的集合,如A-B=B,那么A与B有什么关系求大神帮助
集合A=B,那么A是B的子集.
如果规定符号“*”的意义是a*b=ab/a+b,那么求2*(-3)*4的值
复数的倒数的几何意义Z=a+biZ^-1= a/(a^2+b^2)-bi/(a^2+b^2)这样求出的倒数或者叫逆有什么
若有理数a>0,b>0,则四个数a+b,a-b,-a+b,-a-b中最大的是哪个?最小的是哪个?其中a-b有什么特殊意义
“*”表示一种新运算,它的意义是a*b=-a×b-(a+b)
*表示一种新运算,它的意义是a*b=-a乘b-(a+b)