Java语言程序设计3-14-%&amp#183;第七讲 抽象类与抽象方法课件

上传人:我*** 文档编号:139678029 上传时间:2020-07-23 格式:PPT 页数:14 大小:101KB
返回 下载 相关 举报
Java语言程序设计3-14-%&amp#183;第七讲 抽象类与抽象方法课件_第1页
第1页 / 共14页
Java语言程序设计3-14-%&amp#183;第七讲 抽象类与抽象方法课件_第2页
第2页 / 共14页
Java语言程序设计3-14-%&amp#183;第七讲 抽象类与抽象方法课件_第3页
第3页 / 共14页
Java语言程序设计3-14-%&amp#183;第七讲 抽象类与抽象方法课件_第4页
第4页 / 共14页
Java语言程序设计3-14-%&amp#183;第七讲 抽象类与抽象方法课件_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《Java语言程序设计3-14-%&amp#183;第七讲 抽象类与抽象方法课件》由会员分享,可在线阅读,更多相关《Java语言程序设计3-14-%&amp#183;第七讲 抽象类与抽象方法课件(14页珍藏版)》请在金锄头文库上搜索。

1、第七讲 抽象类与抽象方法,-多态性、抽象方法和抽象类 信息管理系 武俊琢,* 温故 *,类成员的访问权限 public、protected、友好、private 子类继承,子类继承父类的成员 在同一包:子类可继承父类非私有成员 不同包:子类可继承父类的protcted和public成员。 变量的隐藏和方法的覆盖 使用super关键字 使用super调用被隐藏的变量和被覆盖的方法 使用super调用父类的构造方法 对象的上转型对象 父类变量引用子类对象。,本讲要点,类的多态 抽象方法与抽象类,多态性,在程序中同一符号或名字在不同情况下具有不同解释的现象称为多态性。表现在两方面: 方法的重载。 对

2、象的上转型对象。子类可以改写父类的方法,而上转型对象(父类的对象)可以调用改写后的方法。不同的子类可能改写的内容不同。比如:动物类中的cry()方法,在子类“猫”中可以改写为“喵喵”,而在子类“狗”中可以改定为“汪汪”。猫类的和狗类的上转型对象在调用cry()方法时是各不相同的。 (P70例4.22),抽象方法与抽象类,用关键字abstract修饰的类就是抽象类。 没有方法体的方法,且首部用关键字abstract修饰,就是抽象方法。声明抽象方法的格式: 修饰符abstract 返回值类型 方法名(形参列表);,public abstract class AAnimal public Strin

3、g name; public int age; public void print() System.out.println(名字:+name); System.out.println(大小:+age); public abstract void run(); public abstract void cry(); ,抽象方法与抽象类使用说明(一),含有抽象方法的类必须定义为抽象类。,public class AAnimal/错误 public String name; public int age; public void print() System.out.println(名字:+nam

4、e); System.out.println(大小:+age); public abstract void run(); public abstract void cry(); ,抽象方法与抽象类使用说明(二),不能由抽象类直接创建对象。它只能做为父类使用,由它派生的子类必须实现抽象类中所有的抽象方法,才能创建对象。 抽象方法的实现:子类重写父类的抽象方法,增加方法体,使之成为一个非抽象方法。可以空实现。,class Test public static void main(Stringargs) AAnimal a; a=new AAnimal();/错误 ,class Dog extend

5、s AAnimal String type; public Dog() type=宠物狗; public void run() public void cry() System.out.println (汪汪叫); class Test public static void main(Stringargs) Dog a; a=new Dog(); a.name=欢欢;a.age=2; a.print(); a.cry(); System.out.println (这是一只+a.type); ,续,抽象方法与抽象类使用说明(三),如果子类没有实现抽象基类(父类)中所有的抽象方法,则子类也必须定义

6、成一个抽象类。即:抽象的子类也必须使用修饰符:abstract 可以将没有任何抽象方法的类声明为abstract,避免由这个类直接创建任何的对象。,abstract class Dog extends AAnimal String type; public Dog() type=宠物狗; /public void run() public void cry() System.out.println (汪汪叫); ,class Bird extends AnimalClass/定义鸟类继承动物类 public Bird()/构造方法初始化 name=麻雀; age=3; public void

7、run()/实现父类的抽象方法 System.out.println(会飞); public void cry() System.out.println (叽叽喳喳); 创建鸟类对象:练习,鸟类,P71例4.23,抽象类:图形,抽象方法求面积 (指出:图形必须有求面积的方法,但因为不同图形求面积的方法不一样,因此将此方法声明为抽象方法) 子类:梯形类,实现了抽象类中求面积的抽象方法。 子类:圆,实现了抽象类中求面积的抽象方法。 类:堆,求体积。 应用程序类:创建梯形、圆、堆对象,分别进行计算。,小结,用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,

8、该方法叫做抽象方法。 abstract类必须被继承,abstract方法必须被重写。 抽象类不能被实例化(直接创建对象)。 抽象方法只需声明,而不需实现(无方法体)。,作业,作业一:P82习题1、2、3、4 作业二:按以下要求编写程序 创建一个抽象的车类,包括各种车辆。至少包含一个抽象方法。成员变量: 品牌、可载人数、轮子个数、能源等。抽象方法如:跑、加速、刹车等。 通过继承车类重新声明公共汽车类和普通自行车类。在子类中实现父类中抽象方法 构造方法对应区分为公共汽车和普通自行车。子类的构造方法中根据不同的类设置不同的默认值,如汽车类可以默认轮子个数是4个,可载人数50个,能源为汽油。,技能训练七,训练目的 掌握抽象类与抽象方法的应该技巧 实验要求: 创建一个抽象的车类,包括各种车辆。至少包含一个抽象方法。成员变量: 品牌、可载人数、轮子个数、能源等。抽象方法如:跑、加速、刹车等。 通过继承车类重新声明公共汽车类和普通自行车类。在子类中实现父类中抽象方法 构造方法对应区分为公共汽车和普通自行车。子类的构造方法中根据不同的类设置不同的默认值,如汽车类可以默认轮子个数是4个,可载人数50个,能源为汽油。 实验中应解决的问题: 含有抽象方法的类一定是抽象类吗? 抽象类中一定要有抽象方法吗? 如何实现抽象方法?,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号