问题描述
字段和属性的异同?Array和ArrayList的区别?Virtual和abstract的区别?高人给详细讲解以下,谢谢!
解决方案
解决方案二:
Array在构造之后是固定大小的。ArrayList在构造之后仍然可以变化大小。Virtual表示虚函数,但可以有实现部分。abstract表示纯虚(抽象)函数,只定义了方法的签名,但不能包括实现。只能是这样:abstractfloatarea();
不但如此,一个定义了abstract的类则所有其它的类也必须定义成abstract的。举例来说:CShape是一个基类,这个类可能包括一个纯虚函数方法Area()。因为对于一个无特定类型的“形状”而言,它的面积是无法计算的!当然,也可以在CShape中不做基类。而定义一个类CTriangle,这是一个三角形类。对于这个类,可以有一很多公式。假如我们使用海伦公式。计算,则可以定义:virtualfloatarea(){returnxxxx;//这里是海伦公式的具体算法}
但你还可以实现一个直角三角形类(可能你的计算中用到大量的三角形的面积计算,而用于优化。当然虚函数本身就不够优化)。overridefloatarea(){returna*b;//计算公式}
大体意思说一下我的理解,具体语法不必追究。
时间: 2024-10-03 15:30:55