黑马程序员技术交流社区

标题: 求个代码示例一下多态 [打印本页]

作者: 1002865186    时间: 2012-3-25 20:16
标题: 求个代码示例一下多态
对于多态还有些不清楚,求教一下,Java中多态定义是什么?特点是什么?为什么要用多态?
作者: 和心愿    时间: 2012-3-25 20:42
本帖最后由 和心愿 于 2012-3-25 20:44 编辑

package reflection;
//多态就是父类变量指向子类对象,编译类型和运行类型不一样;
/*定义一个父类*/
class Car //父类 :车   
{
        void run()//车都有跑的方法
        {
                System.out.println("车跑");
        }

}

//定义子类继承父类
class Aodi extends Car//奥迪车
{
        @Override
        void run()
        {
                System.out.println("奥迪跑的拉风");//覆写父类run方法
        }
        void pmm()
        {
                System.out.println("泡美眉");//子类特有方法(开奥迪才能泡美眉)
        }
       
}
public class TestShow {

        public static void main(String[] args) {
                 Car car = new Car();//编译类型是Car运行类型也是Car,此时不存在
                 car.run();
                 
                 Aodi aodi = new Aodi();//编译类型与运行类型一样不存在多态
                 aodi.run();
                 aodi.pmm();//子类可以调用自己特有的方法
                 
                 Car aodicar = new Aodi();/*编译类型是Car运行类型是Aodi存在多态*/
                 car.run();//此时子类覆写了父类的方法,的打印结果是“奥迪跑的拉风”
                 //car.pmm()编译通不过,父类变量不能调用子类的特有方法若调用需强转
                 // (可以理解成一个低调的哥们有奥迪的实质却做出普通的样子)  
                 Aodi ad = (Aodi)aodicar;
                 ad.pmm();//可以泡美眉了
                 
        }

}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2