C#实例化的问题

来源:百度知道 编辑:UC知道 时间:2024/09/25 04:30:07
我看接口的时候有个问题绕住了
下面有两个实例化
CLASSA B=NEW CLASSC()
CLASSA B=NEW CLASSA()

我只见过第二种,第一种和第二种有什么区别吗?能给我这个初学者详细的说一下吗?

估计这个问题是关于引用类型和值类型的,望高手解答,谢谢

第二个是普通的创建类的实例的例子

第一个叫做动态绑定.

比如说 CLASSA 是一个基类,而 CLASSC 继承自

CLASSA.像这样来创建类的实例称为动态绑定

该思考的是:在子类中重写父类的一个方法 假如生成(创建)一个子类的对象

并利用此子类的对象调用这个方法,那么到底会是调用的是谁的方法呢,子类

中的此方法还是父类中的此方法? 所以,Java中有动态绑定的概念

动态绑定的优点就是:当在子类中存在和父类同名的方法时,能自主判定是

该调用父类的同名方法还是子类的该同名方法(子类中存在父类的同名方法时,称

为方法重写 这体现了Java面向对象编程的多态性)

还有就是值类型和引用类型的区别 数值都是值类型 对象都是引用类型

结构是值类型 如还有疑问 欢迎加QQ号:369575765

类都是引用类型的。

第一种第二种都一样,但是第一种有点特殊,就是 CLASSC 这个类一定继承字 CLASSA 继承下来的,所以虽然声明的是 CLASSA,但是实例化的CLASSC还是可以隐式转换为CLASSA

这两个实例B,使用方法上是一样的,但是得到的实现结果可能会不一样,因为它们是由不同的类实现的。

父类引用可以指向子类对象,第一种情况的CLASSC应该是 CLASSA的子类

第二个是一般情况,第一个是继承的类