3.3.1继承与多态的概念框形图形矩形-内方框宽度#周长#长度#宽度#面积框形(外长,外宽)框形(外长,外宽,内框宽矩形(长,宽)+计算周长(抽象+计算周长+计算周长+计算面积(方法+计算面积+计算面积(+获取周长(+获取面积()YA圆形《interface)-半径17绘制图形三角形圆形(半径)-边长1+计算周长(+绘制()-边长2+计算面积(-边长3+填充颜色()三角形(边1,边2,边3)+计算周长(+计算面积()各种图形类及其之间的继承关系示例Java面向对象程序设计
Java面向对象程序设计 各种图形类及其之间的继承关系示例 3.3.1 继承与多态的概念 图形 #周长 #面积 +计算周长() +计算面积() +获取周长() +获取面积() 矩形 #长度 #宽度 矩形(长,宽) +计算周长() +计算面积() 圆形 -半径 圆形(半径) +计算周长() +计算面积() 三角形 -边长1 -边长2 -边长3 三角形(边1,边2,边3) +计算周长() +计算面积() 《interface》 绘制图形 +绘制() +填充颜色() 框形 -内方框宽度 框形(外长,外宽) 框形(外长,外宽,内框宽) +计算周长() +计算面积(). 抽象 方法
3.3.1继承与多态的概念/例:一个表示图形的类Shapes.java*图形abstractclassShapesl/定义一个名为Shape的抽象类#周长protecteddoublecircumference;//图形的周长protected double area;/图形的面积#面积abstractvoidsetCircumferenceO://抽象方法:计算周长+计算周长()abstractvoidsetAreaO//抽象方法:计算面积+计算面积()+获取周长()publicdoublegetCircumference0//实例方法:获取周长+获取面积()return circumference;publicdoublegetArea0//实例方法:获取面积return area;Java面向对象程序设计
Java面向对象程序设计 3.3.1 继承与多态的概念 图形 #周长 #面积 +计算周长() +计算面积() +获取周长() +获取面积()
3.3.1继承与多态的概念classRectangleextendsShapes//继承于Shapes的子类:矩形类图形#周长protected int height;/矩形的高度#面积protected intwidth;//形的宽度+计算周长(Rectangle(inthintw)//构造法,带2个参数:高度宽度+计算面积()+获取周长(height=h;+获取面积()width=w;publicvoidsetCircumferenceo/覆盖计算同长的父类方法矩形circumference=2*(height+width)#长度#宽度public void setAreao/覆盖计算面积的父类方法矩形(长,宽)area=height*width+计算周长()+计算面积(中Java面向对象程序设计
Java面向对象程序设计 图形 #周长 #面积 +计算周长() +计算面积() +获取周长() +获取面积() 矩形 #长度 #宽度 矩形(长,宽) +计算周长() +计算面积() 3.3.1 继承与多态的概念
classBoxextendsRectangle(//继承于Rectangle的子类:矩形框类privateintwidtn,内部正方框的宽度、高度,将隐藏父类同名属性Boxinth.intw)带换数:矩形外框高度、宽度类的构造//调用法,外框尺寸被赋值super(h,w)矩形#长度Boxinth.intwintinnerw///带3个参数:矩形外框高度宽度、内方框宽度#宽度this(h,w):国用带2个参支购构造方构造矩形矩形(长,宽)width=innerw,//确应内部正方形框的尺寸+计算周长()+计算面积()publicvoidsetWidth(intinnerw//号内方框尺的方法width=innerw,publicintgetWidtho(//获得内方框寸框形可改为super.widreturn width;里想获取外框的宽度一内方框宽度publicvoidsetCircumferenceOt//覆盖父类法计算周长框形(外长,外宽)分类方法计算外边周super.setCircumference0:1/间框形(外长,外宽,内框宽握+内框circumference+=4*width;//矩形框的周长-+设置内框宽度(内宽)+获取内框宽度()publicintsetArea(intinnerw)//重载方法setArea0,计算内部正方形面积+计算周长()return width*width;1/正方形面积+计算面积(内宽)publicvoid setAreaOt+计算面积()area=height*super.width-setArea(width)://总面积=矩形面积-内部正方形面积个
Java面向对象程序设计 矩形 #长度 #宽度 矩形(长,宽) +计算周长() +计算面积() 框形 -内方框宽度 框形(外长,外宽) 框形(外长,外宽,内框宽) +设置内框宽度(内宽) +获取内框宽度( ) +计算周长() +计算面积(内宽) +计算面积() 3.3.1 继承与多态的概念
3.3.1继承与多态的概念(2)多态在Java中,多态是指一个程序中同名的不同方法共存的情况。多态允许不同类的对象对同一方法做出响应,同名方法可以具有不同的数据类型或表现出不同的行为多态分为编译时多态(重载)和运行时多态(动态绑定的覆盖与接口实现)。多态可以提高程序的灵活性和可扩展性多态存在的必要条件Java中多态的实现方式要有继承·继承父类进行方法覆盖要有重写·同一个类中进行方法重载父类引用指向子类对象(向上转型)接口实现(实现其方法)Java面向对象程序设计
Java面向对象程序设计 3.3.1 继承与多态的概念 (2)多态 Java中多态的实现方式: • 继承父类进行方法覆盖 • 同一个类中进行方法重载 • 接口实现(实现其方法) 多态存在的必要条件: • 要有继承 • 要有重写 • 父类引用指向子类对象(向上转型) • 在Java中,多态是指一个程序中同名的不同方法共存的情况。多态允许不同类的对象对同一方 法做出响应,同名方法可以具有不同的数据类型或表现出不同的行为。 • 多态分为编译时多态(重载)和运行时多态(动态绑定的覆盖与接口实现)。 • 多态可以提高程序的灵活性和可扩展性