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类型本身并没有这个方法 */