欢迎来到天天文库
浏览记录
ID:48796191
大小:386.00 KB
页数:14页
时间:2020-01-25
《第七讲 抽象类与抽象方法.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第七讲抽象类与抽象方法----多态性、抽象方法和抽象类信息管理系武俊琢***温故***类成员的访问权限public、protected、友好、private子类继承,子类继承父类的成员在同一包:子类可继承父类非私有成员不同包:子类可继承父类的protcted和public成员。变量的隐藏和方法的覆盖使用super关键字使用super调用被隐藏的变量和被覆盖的方法使用super调用父类的构造方法对象的上转型对象父类变量引用子类对象。本讲要点类的多态抽象方法与抽象类多态性在程序中同一符号或名字在不同情况下具有不同解释的现象称为
2、多态性。表现在两方面:方法的重载。对象的上转型对象。子类可以改写父类的方法,而上转型对象(父类的对象)可以调用改写后的方法。不同的子类可能改写的内容不同。比如:动物类中的cry()方法,在子类“猫”中可以改写为“喵喵”,而在子类“狗”中可以改定为“汪汪”。猫类的和狗类的上转型对象在调用cry()方法时是各不相同的。(P70例4.22)抽象方法与抽象类用关键字abstract修饰的类就是抽象类。没有方法体的方法,且首部用关键字abstract修饰,就是抽象方法。声明抽象方法的格式:[修饰符…]abstract返回值类型方法名
3、([形参列表]);publicabstractclassAAnimal{publicStringname;publicintage;publicvoidprint(){System.out.println("名字:"+name);System.out.println("大小:"+age);}publicabstractvoidrun();publicabstractvoidcry();}抽象方法与抽象类使用说明(一)含有抽象方法的类必须定义为抽象类。publicclassAAnimal//错误{publicStringna
4、me;publicintage;publicvoidprint(){System.out.println("名字:"+name);System.out.println("大小:"+age);}publicabstractvoidrun();publicabstractvoidcry();}抽象方法与抽象类使用说明(二)不能由抽象类直接创建对象。它只能做为父类使用,由它派生的子类必须实现抽象类中所有的抽象方法,才能创建对象。抽象方法的实现:子类重写父类的抽象方法,增加方法体,使之成为一个非抽象方法。可以空实现。classTe
5、st{publicstaticvoidmain(String[]args){AAnimala;a=newAAnimal();//错误}}classDogextendsAAnimal{Stringtype;publicDog(){type="宠物狗";}publicvoidrun(){}publicvoidcry(){System.out.println("汪汪叫");}}classTest{publicstaticvoidmain(String[]args){Doga;a=newDog();a.name="欢欢";a.ag
6、e=2;a.print();a.cry();System.out.println("这是一只"+a.type);}}续抽象方法与抽象类使用说明(三)如果子类没有实现抽象基类(父类)中所有的抽象方法,则子类也必须定义成一个抽象类。即:抽象的子类也必须使用修饰符:abstract可以将没有任何抽象方法的类声明为abstract,避免由这个类直接创建任何的对象。abstractclassDogextendsAAnimal{Stringtype;publicDog(){type="宠物狗";}//publicvoidrun(){}
7、publicvoidcry(){System.out.println("汪汪叫");}}classBirdextendsAnimalClass//定义鸟类继承动物类{publicBird()//构造方法初始化{name="麻雀";age=3;}publicvoidrun()//实现父类的抽象方法{System.out.println("会飞");}publicvoidcry(){System.out.println("叽叽喳喳");}}创建鸟类对象:练习鸟类P71例4.23抽象类:图形,抽象方法—求面积(指出:图形必须有求
8、面积的方法,但因为不同图形求面积的方法不一样,因此将此方法声明为抽象方法)子类:梯形类,实现了抽象类中求面积的抽象方法。子类:圆,实现了抽象类中求面积的抽象方法。类:堆,求体积。应用程序类:创建梯形、圆、堆对象,分别进行计算。小结用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstrac
此文档下载收益归作者所有