package Day12;
class A
{
int i,j;
void setIJ(int i,int j)
{
this.i=i;
this.j=j;
}
int multiply()
{
return i*j;
}
public void printF()
{
System.out.println("i="+this.i);
}
}
class B extends A
{
int i,k;
B(int i,int k)
{
this.i=i;
this.k=k;
}
int multiply()
{
System.out.println("i="+i+":j="+j+"k="+k);
return i*j*k;
}
void print()
{
System.out.println("i="+i+":k="+k);
}
}
public class Demo1
{
public static void main(String a[])
{
B subO=new B(1,2);
subO.setIJ(3,4);//调用父类方法setIJ(); 疑问语句
//你的子类方法multiply()中,有父类不存在的k变量,所以.使用子类方法时,他使用的是子类的变量,
int m=subO.multiply();//父类中没有k,没有的,他就去父类找,有的,就自己用.
System.out.println("m="+m);
subO.print();//出输1:2:
subO.printF();//输出3//i的赋值是3.当你输出父类有的属性时,它就会输出父类的.子父类有方法覆盖.
}
} |