向上转型

向上转型

向上转型,JAVA中的一种调用方式。向上转型是对A的对象的方法的扩充,即A的对象可访问B从A中继承来的和B複写A的方法。

    • 中文名:向上转型
    • 面向对象:分为向上转型和向下转型
    • 调用方式:JAVA中的一种调用方式
    • 释义:它是对A的对象的方法的扩充,

词条简介

这是面向对象(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 中的私有成员方法。

相关词条

相关搜索

其它词条