Java—(多态、内部类)
一、多态 多态:可以理解为同一个事物在不同的场合具有不同的形态 分为两种: 编译时多态:在编译期间编译器根据函数实参的类型确定要调哪个函数(这个我们之前已经接触过了,和函数重载差不多,是同名函数,但是参数不同)编译时的多态性是通过函数重载或运算符重载来实现的。 运行时多态:在程序运行期间才会去判断到底会调用哪个函数。这里我们主要讲的就是动态多态。运行时的多态性是通过虚函数与基类指针共同作用实现的。 作用: 静态多态的作用:减少了名字(比如:函数名)的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。 动态多态的作用:多态技术允许将基类指针或基类引用指向子类对象,根据对象的动态类型来决定调用的是哪个子类中的这个同名方法,从而解决了同名覆盖问题,写出了通用的代码,即扩展性优秀的代码,以适应需求的不断变化。 简单举个例子: 猫 x=new 猫(); 动物 y=new 猫(); 1.多态的体现 父类的引用指向自己的子类对象; 父类的引用也可以接收自己的子类对象。 2.多态的前提 必须是类与类之间的关系,要么是继承(extends),要么是实现(implements),通常还有一个前提,就是存在覆盖(重写)。 3.多态的好处 多态的出现大大的提高了程序的可扩展性。但是只能使用父类的引用,访问父类的成员。 4.类型转换(向上转型,向下转型) Anmial a=new Cat();/