第一题 调用超类的成员变量。
class A
{
int i;
void showi()
{
System.out.println("A.i="+i);
}
class B extends A
{
int i;
B(int a,int b)
{
super.i=a;
//使用super访问超类A的成员变量i
i=b;
}
void showi()
{
super.showi();
//使用super访问超类A的成员方法showi()
System.out.println("B.i="+i);
}
}
public class Ex
{
public static void main(String args[])
{
B b=new B(5,10);
b.showi();
}
}
本程序的运行结果是:
A.i=5
B.i=10
第二题 继承中的方法重载
class A
{
int i=5;
void show()
{
System.out.println("i="+i);
}
}
class B extends A
{
int j=10;
void show(int a)
{
System.out.println("j="+j+" "+a);
}
}
public class Ex
{
public static void main(String args[])
{
B b=new B();
b.show();
b.show(5);
}
}
本程序的运行结果是:
i=5
j=10 5
第三题 动态方法调度。
class A
{
int i;
A(int a)
{
i=a;
}
void show()
{
System.out.println("i="+i);
}
}
class B extends A
{
int j;
B(int a,int b)
{
super(a);
j=b;
}
void show()
{
System.out.println("i="+i+" j="+j);
}
}
public class Ex
{
public static void main(String args[])
{
A a;
B b=new B(5,6);
a=b; //在运行的时候为对象a赋值
a.show(); //调用的是类B的show()方法
}
}
本程序的运行结果是:
i=5 j=6 |
|