请输入您要查询的百科知识:

 

词条 向上转型
释义

这是面向对象(c# Java AS3.0)编程(oop)中多态的方面,分为向上转型和向下转型。

假定父类为 动物,子类为狗,父类有一个方法 发声()。在子类重写该方法

则(以下过程c#实现):

动物 a=new 狗();//这就为向上转型

a.发声();

在调用 a.发声();时调用的是动物的发声()也可调动物类其他方法 但不能调用狗类方法

若修改为

动物 a=new 狗();

狗b=(狗)a;//这里向下转型

这时b可调用动物类未被重写的方法和狗类所有方法(包括重写动物类的方法)

向上转型都会成功,是安全的。 就像说狗是动物没问题。

接上面

动物 a=new 动物();

a.发声();//调动物类方法

狗 b=(狗)a;//这也是向下转型 但下面通过b若调用 动物 或 狗类中任意方法都报异常

也就是说向下转型可能会出错 不能说动物是狗

JAVA中的一种调用方式

class A{

void f(){}

void g(){}

}

class B extends A{

void g(){}

void i(){}

}

public class C{

public static void main(String[] args){

A a=new B(); //B自动向上转型为A的对象

}

}

向上转型并非是将B自动向上转型为A的对象,相反它是从另一种角度去理解向上两字的:它是对A的对象的方法的扩充,即A的对象可访问B从A中继承来的和B复写A的方法。其它的方法都不能访问。即使是A 中的私有成员方法。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/4 3:33:30