class Fu
{
static int num=3;
void method1()
{
System.out.println("fu method_1");
}
void method2()
{
System.out.println("fu method_2");
}
static void method4()
{
System.out.println("fu method_4");
}
}
class Zi extends Fu
{ static int num=66;//"China";
void method1()
{
System.out.println("zi method_1");
}
void method3()
{
System.out.println("fu method_3");
}
static void method4()
{
System.out.println("zi method_4");
}
}
class DuoTaiDemo4
{
public static void main(String[] args)
{
Fu f=new Zi();
f.method1();//结果是zi method_1,因为父类中method1被覆盖。
f.method2();//fu method_2,因为子类继承了父类的method2方法。
//f.method3();编译失败,父类引用不能调用子类特有方法,
//因为此时子类对象在编译时并没有创建
/*注意*/ f.method4();//结果fu method_4,因为static函数在类加载时就已经存在
//而不需要对象,即不参考右边的子类对象,和子类没关系。
System.out.println(f.NUM);
}
}
关于多态模式,子父类变量的提问:
1.父类中变量static修饰符起到了什么作用?去掉的话,不影响结果,为什么还要带着?
2.在多态中,实际存在着变量的覆盖关系吗?能说一下当中的运作过程就再好不过了。
谢谢~ |
|