之所以特地的开一个博客,因为我觉得这个有些难度。
什么是多态
比如你是一个酒神,对酒情有独钟。某日回家发现桌上有几个杯子里面都装了白酒,从外面看我们是不可能知道这是些什么酒,只有喝了之后才能够猜出来是何种酒。你一喝,这是剑南春、再喝这是五粮液、再喝这是酒鬼酒….在这里我们可以描述成如下:
酒 a = 剑南春
酒 b = 五粮液
酒 c = 酒鬼酒
…
这里所表现的的就是多态。剑南春、五粮液、酒鬼酒都是酒的子类,我们只是通过酒这一个父类就能够引用不同的子类,这就是多态——我们只有在运行的时候才会知道引用变量所指向的具体实例对象。
这是我看到的很形象的定义,声明的方法也很简单。
父类 引用=new 子类();
其中,引用可以直接调用父类中已有的对象,但是无法直接调用子类中新增的对象,可以通过强制的类型转化就可以调用。IDEA自动会为你转换。
多态有什么用呢?在运行之前,程序不知道要用哪一个类型的方法,在运行中才会确认。
这种同一个父类的引用,可以放在一个数组里。声明方法是
Employee[] employee ={new Employee(),new Lawyer(),new Secretary()};
//使用
for(Employee e :employee)
{
***
}
或者for循环可以写成
for(int i=0;i<employee.length,i++)
{
***
}