6抽象类与接口Java.ppt
文本预览下载声明
目 标 当完成本章后,你应该能够: 理解抽象方法 理解抽象类 从抽象类继承 理解并使用接口 实现接口 从接口继承 抽象类 从形状开始 抽象方法 抽象类 从形状开始 要开发一个图形系统 首先要定义相关的图形类 主要有: 三角形 平行四边形 矩形 正方形 … … 父类 根据继承的知识 以及形状之间的关系 设计了所有形状类的父类 类 Shape 该类的方法在继承时需要被覆盖 Shape.java 父类 Shape 未定义成员变量 成员方法如下: public Shape(); public double getPerimeter(); public double getArea(); public void draw(); 周长和面积 这是任何形状都有的属性 返回类型是 double 由于 Shape 是所有形状的父类 并不是具体的形状 那么这两个方法的方法体能否为空呢? 答案是不能为空 因为方法的返回类型是 double 这两个方法必须返回一个 double 类型的值 否则产生编译错误,不能通过编译 编译错误 把两句 return 0.0; 注释后重新编译程序 src\Shape.java:9: 缺少返回语句 } ^ src\Shape.java:13: 缺少返回语句 } ^ 2 错误 子类 Triangle 设计并实现子类三角形 Triangle Triangle.java 成员: private double a; private double b; private double c; public Triangle(); public Triangle(double a, double b, double c); public double getPerimeter(); public double getArea(); public void draw(); 子类 parallelogram 设计并实现子类平行四边形 parallelogram Parallelogram.java 成员: private double a; private double b; private double theta; public Parallelogram(); public Parallelogram(double a, double b, double theta); public double getA(); public double getB(); public double getPerimeter(); public double getArea(); public void draw(); Math.sin(theta) 小问题 但影响最终计算结果 经常使用角度 但该方法使用的是 弧度 角度 转换为 弧度 子类 Rectangle 设计并实现子类矩形 rectangle Rectangle.java 该类从 Parallelogram 而非 Shape 进行继承 成员: public Rectangle(); public Rectangle(double a, double b); public void draw(); 子类 Rectangle 构造器的编写 通过 super 来调
显示全部