对多态的理解:
多态:可以理解为事物存在的多种体现形式。
美女有多种,玉姐性,清纯型。。。又好比人按性别可以分为男人、女人;按年龄可以有小孩、成人、老人等等
动物:猫、狗。。。。
按照多态的话,创建一只猫,有两种方式:
猫 x = new 猫(); //本类引用创建本类实例 可以简单的理解为 猫就是猫
动物 x = new 猫();//父类引用创建子类实例 ,体现的就是多态。 同样按照上面的逻辑可以理解为:猫是动物,OK
多态的一些特点:
1、多态的表现形式:
父类的引用指向了自己的子类对象。
父类的引用也可以接受自己的子类对象。 上面举得例子就是
2、多态的前提
必须是类与类之间有关系,要么继承,要么实现
通常还有一个前提:就是存在覆盖。
3、多态的好处
多态的出现大大的提高了程序的扩展性
4、弊端
提高了扩展性,但是只能使用父类的引用访问父类中的成员。
按照多态的话,创建一只猫,有两种方式:
猫 x = new 猫(); //本类引用创建本类实例 可以简单的理解为 猫就是猫
动物 x = new 猫();//父类引用创建子类实例 ,体现的就是多态。 同样按照上面的逻辑可以理解为:猫是动物,OK
多态的一些特点:
1、多态的表现形式:
父类的引用指向了自己的子类对象。
父类的引用也可以接受自己的子类对象。 上面举得例子就是
2、多态的前提
必须是类与类之间有关系,要么继承,要么实现
通常还有一个前提:就是存在覆盖。
3、多态的好处
多态的出现大大的提高了程序的扩展性
4、弊端
提高了扩展性,但是只能使用父类的引用访问父类中的成员。
在多态中(非)成员函数的特点:
在编译时期,残月引用性变量所述的类中是否有调用的方法,如果哟,编译通过,如果没有编译失败。
在运行期间,残月对象所述的类中是否有调用的方法。
简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。
在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类)
在多态中,静态成员函数的特点:
无论编译与运行,都参考左边。
在编译时期,残月引用性变量所述的类中是否有调用的方法,如果哟,编译通过,如果没有编译失败。
在运行期间,残月对象所述的类中是否有调用的方法。
简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。
在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类)
在多态中,静态成员函数的特点:
无论编译与运行,都参考左边。
举例说明:
例子很简单,就是用父类引用创建子类对象,然后用子类对象调用父类方法和子类方法。
public class Fu
{
int num = 5;
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");
}
}
public class Zi extends Fu
{
int num = 8;
void method1()
{
System.out.println("Zi method_1");
}
void method3()
{
System.out.println("Zi method_3");
}
static void method4()
{
System.out.println("zi method_4");
}
}
public class DuoTaiDemo
{
public static void main(String[] args)
{
//Zi z = new Zi();//一般的创建对象
//z.method1();
//z.method2();
//z.method3();
/*
在多态中(非)成员函数的特点:
在编译时期,残月引用性变量所述的类中是否有调用的方法,如果哟,编译通过,如果没有编译失败
在运行期间,残月对象所述的类中是否有调用的方法。
简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。
在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类)
在多态中,静态成员函数的特点:
无论编译与运行,都参考左边。
*/
Fu f = new Zi();//多态的体系
System.out.println(f.num);//5
Zi z = new Zi();
System.out.println(z.num); // 8
f.method1();//Zi method_1
f.method2();//fu method_2
//f.method3();
f.method4();//fu method_4
z.method4();//zi method_4
}
}