当前位置首页 > 百科> 正文

向上转型

2018-03-02 18:58:37 百科
向上转型

向上转型

向上转型,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 中的私有成员方法。
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net