------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
46. (1)多态的体现:父类的引用指向自己的子类对象(父类的引用也可以接收自己的子类对象);(2)多态的前提:必须是类与类之间有关系,继承或者实现;通常还有一个前提,即存在覆盖;(3)多态的好处:多态的出现提高了程序的可扩展性;(4)多态的弊端:提高了扩展性,但只能使用父类的引用访问父类中的成员;
47. 多态自始至终都是子类对象在做着变化;
48. 在多态中非静态成员函数的特点:在编译时期,参阅引用型变量所属的类中是否有调用的方法,如果有,编译通过,如果没有,编译失败;在运行时期,参阅对象所属的类中是否有调用的方法;即:成员函数在多态调用时,编译看左边,运行看右边;
在多态中静态成员函数的特点:无论编译和运行,都参考左边;见50例
49. 在多态中,成员变量特点:无论编译和运行,都参考左边(即引用型变量所属的类);
(当父类子类出现重名变量的时候,多态情况下看的是父类),例如:
class Fu
{
int num = 1;
static void method()
{
System.out.println(“Fu_method”);
}
}
class Zi extends Fu
{
int num = 2;
static void method()
{
System.out.println(“Zi_method”);
}
}
public static void main(String[] args)
{
Fu f = new Zi();
f.method(); //输出 Fu_method
System.out.println(f.num); //输出1
Zi z = new Zi();
System.out.println(z.num); //输出2
}