A b=new B()子类的向上转型

来源:互联网 发布:linux系统下安装软件 编辑:程序博客网 时间:2024/03/29 23:12

class A {

int a=1;

double d=2.0;

void show( ) {

System.out.println("Class A:a="+a +" d="+d);

}

}

class B extends A {

float a=3.0f;

String d="Java program.";

void show( ) {

super.show( );

System.out.println("Class B:a="+a +" d="+d);

}

//void show2(){

// }

 }

class Test{

 public static void main(String[] args){

A b=new B();

b.show();

//b.show2();

}

}

/* A b=new B(); 这是子类的向上转型,A类 的引用 b,调用B类的构造函数生成B类对象。子类向上转型后,其通过继承并覆写后的函数仍能被唤起,并能被准确识别及执行,即向上转型后的对象,其内有效的函数被调用时,能准确执行其自身未转型时的功能。这个机制主要由java函数(非final函数)的"后期绑定"性质保障。 另外,show2()方法是不可以被b调用的,这是因为b被声明为一个A类型的对象,而A类型本身并没有这个方法 */

原创粉丝点击