TP4继承与多台性

上传人:沈*** 文档编号:244288439 上传时间:2024-10-03 格式:PPT 页数:32 大小:1.04MB
返回 下载 相关 举报
TP4继承与多台性_第1页
第1页 / 共32页
TP4继承与多台性_第2页
第2页 / 共32页
TP4继承与多台性_第3页
第3页 / 共32页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,*,第四章,面向对象的概念和,Java,实现,-2,2,回顾,类是具有相同属性和行为的一组对象的,集合,对象是类的实例,封装是隐藏对象实现细节的过程,以便不让用户看到实现的细节,类可用,Class,来定义,类的变量和方法可被该类的实例访问,圆点符号用于访问对象的成员,构造函数在创建对象时初始化对象,包可用,package,来申明,可用,import,来导入包,3,目标,理解继承及其特点,运用,JAVA,程序实现继承,理解多态及其特点设计,运用,JAVA,程序实现多态,掌握访问修饰符和方法修饰符,4,继承,父 类,子类,父类,/,子类是相对的,牛,类,狮子,类,老虎类,动物,类,食肉,类,食草,类,羊,类,5,继承的特点,继承的特点,具有层次结构,子类继承了父类的属性和方法,6,继承的优点,继承的优点,代码的可重用性,父类的属性和方法可用于子类,设计应用程序变得更加简单,可以轻松地自定义子类,7,继承的,JAVA,实现,演示:示例,1,编写一个父类,使用,extends,关键字,编写子类,class Car,extends,Vehicles,/*,构造方法,.*/,Car(),/*,显示子类,Car,的信息,.*/,void show(),System.out.println(“,从子类,Car,中输出的信息,);,System.out.println(“,交通工具的名称,-+,name,);,System.out.println(“,交通工具的颜色,-+,color,);,System.out.println(“,座位的数量,-+,seats,);,System.out.println(=);,class Vehicles,/*,存储交通工具的名称,.*/,protected String name=Honda Civic;,/*,存储颜色信息,.*/,protected String color=Red;,/*,存储座位信息,.*/,protected int seats=5;,/*,构造方法,.*/,Vehicles(),/*,*,显示父类汽车的详细信息,*,/,void showDetail(),System.out.println(,从父类,Vehicles,中输出的信息,);,System.out.println(,名称,-+name);,System.out.println(,颜色,-+color);,public class CarTest,/*,*,构造方法,*,/,CarTest(),/*,*,这是,main,方法,*,param args,传递至,main,方法的参数,*,/,public static void main(String args),/*,声明一个对象*,/,Car vehicle=new Car();,vehicle.show();,vehicle.showDetail();,8,子类构造方法,2-1,子类构造方法的名称与类的名称相同,先调用父类构造方法,再调用子类构造方法,要调用父类构造方法,使用关键字,super,9,子类构造方法,2-2,调用父类构造方法的语法为:,super(),或,super(,参数列表,);,super(),方法始终指向调用类的父类,10,调用父类构造方法,演示:示例,3,关键字,super,的用法,class FictionAuthor extends Author,/*,存储作者的小说类型,.*/,String storytype;,/*,子类构造方法,.,param name,传递至构造方法的参数,param type,传递至构造方法的参数*,/,FictionAuthor(String name,String type),super(name);,storytype=type;,System.out.println(“,从,Fiction Author,类输出,);,System.out.println(“,小说类型为,+storytype);,调用父类构造方法,Author(String str),name=str;,System.out.println(“,从,Author,类输出,);,System.out.println(“,姓名为,+name);,11,多态性,2-1,多态性是指,“,多种形式,”,它使用不同的实例而执行不同操作,多态包括方法重写和方法重载,12,多态性,2-2,父类,子类,-,绘制和移动三角形,子类,-,绘制和移动矩形,子类,-,绘制和移动五边形,Shape,Draw(),Move(),Triangle,Draw(),DrawTraingle,Move(),MoveTriangleVertices,Rectangle,Draw(),DrawRectangle,Move(),MoveRectangleCorner,Pentagon,Draw(),DrawPentagon,Move(),MovePentagonVertices,13,方法重载,2-1,方法重载,类中有多个具有相同名称的方法,方法重载,类中有多个具有相同名称的方法,方法具有不同的,参数列表,14,方法重载,2-2,演示:示例,4,public class DisplayNumber,/*,无参数可显示,/,void display(),System.out.println(,无参数可显示!,);,/*,*param num,传递至,display,方法的参数,*,param num1,传递至,display,方法的参数,*,/,void display(int num,int num1),System.out.println(,两个整数是:,+num+num1);,/*,*param,型的,count,由,display,方法接收,*,/,void display(double count),System.out.println(,在,display,(,double,)方法内:,+count),public static void main(String arg),int count=25;,DisplayNumber dispObj=new DisplayNumber();,dispObj.display();,dispObj.display(10,20);,/*,不存在具有一个,int,型参数的方法,,*,int,型值自动转化为,double,型值,*,/,System.out.println(“,调用,display(double),方法,,+“,使用,int,变量,:+count);,dispObj.display(count);,dispObj.display(25.5);,15,方法重写,2-1,方法重写,子类和父类的方法具有相同的名称和类型,用子类对象调用子类中的重写方法,super.methodname(),用于调用父类中的方法,16,方法重写,2-2,父类和子类中具有相同名称和类型的方法,public static void main(String arg),Rectangle rectObj=new Rectangle(10,15);,rectObj.getPerimeter();,Rectangle sqObj=new Square(15);,sqObj.getPerimeter();,调用父类方法,调用子类方法,class Square,extends Rectangle,Square(int len),length=len;,/*,计算周长,.*/,void getPerimeter(),System.out.println(“,正方形的周长为,+(4*length);,class Rectangle,int length;,int width;,Rectangle(int len,int wid),length=len;,width=wid;,/*,计算矩形的周长,.*/,void getPerimeter(),System.out.println(“,矩形的周长为,+(2*(length+width);,17,访问修饰符,3-1,信息隐藏是,OOP,最重要的功能之一,也是使用访问修饰符的原因,信息隐藏的原因包括:,对任何实现细节所作的更改不会影响使用该类的代码,防止用户意外删除数据,此类易于使用,访问修饰符,访问修饰符,private,protected,public,默认,18,访问修饰符,3-2,该类或非该类均可访问,public,只有该类可以访问,private,相同数据包中的类可以访问,默认,该类及其子类的成员可以访问,同一个包中的类也可访问,protected,19,访问修饰符,3-3,访问修饰符可访问性,位置,private,默认,protected,public,同一个类,是,是,是,是,同一个包内的类,否,是,是,是,不同包内的子类,否,否,是,是,不同包并且不是子类,否,否,否,是,20,方法修饰符,方法修饰符,static,final,abstract,21,static,修饰符,3-1,static,修饰符修饰的方法叫静态方法,目的,使该方法独立于类的实例,使用类去访问,而不是类实例,所以也叫类方法,22,static,修饰符,3-2,调用静态方法的语法为:,classname.methodname();,规 则,可以调用其他静态方法,必须访问静态数据,不能使用,super,或,this,关键字,23,演示:示例,6,public static void main(String arg),/*,初始化变量*,/,double inch=66;,double feet=InchesToFeet.convert(inches);,System.out.println(inch+“,英寸为”,+feet+“,英尺。,);,使用类名称调用,static,方法,public static double convert(double in),return(in/inches);,static,修饰符,3-3,24,final,修饰符,final,不能修改变量,子类不能重写方法,25,abstract,修饰符,3-1,由,abstract,修饰的方法叫抽象方法;由,abstract,修饰的类叫抽象类,抽象方法必须声明在抽象类中,抽象方法语法:,abstract type method_name(parameter_list);,声明抽象类语法:,abstract class,使用:父类中的某些抽象不包含任何逻辑,并需要在子类中重写,子类提供这种抽象方法的实现细节,26,abstract,修饰符,3-2,抽象类可以具有指向子类对象的对象引用,abstract,抽象类不能被,实例化,构造方法,和,static,方法不能是抽象的,父类的抽象方法往往在子类中实现,27,abstract,修饰符,3-3,演示:示例,7,抽象方法不具有任何实现代码,abstract class Shape,.,protected double length;,protected double width;,.,.,abstract double area();,class Square extends Shape,/*,构造方法,.,*param num,传递至构造方法的参数,*,param num1,传递至构造方法的参数,*,/,Square(final double num,final double num1),super(num,num1);,/*,*,计算正方形的面积,.,*return double,*/,double area(),System.out.println(“,正方形的面积为:,);,return length*width;,28,接口,接口就
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!