2019秋JAVA第三周课程总结及实验报告(五)

实验四 类的继承

  • 实验目的
  • 理解抽象类与接口的使用;
  • 了解包的作用,掌握包的设计方法。
  • 实验要求
  • 掌握使用抽象类的方法。
  • 掌握使用系统接口的技术和创建自定义接口的方法。
  • 了解 Java 系统包的结构。
  • 掌握创建自定义包的方法。

实验内容

(一)抽象类的使用

  1. 设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法。 继承该抽象类定义三角型、矩形、圆。 分别创建一个三角形、矩形、圆存对象,将各类图形的面积输出。
    注:三角形面积s=sqrt(p*(p-a)*(p-b)*(p-c)) 其中,a,b,c为三条边,p=(a+b+c)/2

2.编程技巧

(1)    抽象类定义的方法在具体类要实现;

(2)    使用抽象类的引用变量可引用子类的对象;

(3) 通过父类引用子类对象,通过该引用访问对象方法时实际用的是子类的方法。可将所有对象存入到父类定义的数组中。

(二)使用接口技术

1定义接口Shape,其中包括一个方法size(),设计“直线”、“圆”、类实现Shape接口。分别创建一个“直线”、“圆”对象,将各类图形的大小输出。

  1. 编程技巧

(1) 接口中定义的方法在实现接口的具体类中要重写实现;

(2) 利用接口类型的变量可引用实现该接口的类创建的对象

实验代码(一)

Shape.java

1 abstract public class Shape {
2    abstract double Area();
3 }

 

Rectangle.java

 1 public class Triangle extends Shape{
 2     private double p;
 3     private double a;
 4     private double b;
 5     private double c;
 6     Triangle(double a, double b, double c){
 7         this.a = a;
 8         this.b = b;
 9         this.c = c;
10         this.p = (a+b+c)/2;
11     }
12 
13 
14     double Area(){
15         return Math.sqrt(p*(p-a)*(p-b)*(p-c));
16     }
17 
18 }

 

Round.java

 1 public class Round extends Shape{
 2     private double r;
 3     Round(double radius){
 4         this.r = radius;
 5     }
 6 
 7     double Area(){
 8         return Math.PI*r*r;
 9     }
10 }

 

Triangle.java

 1 public class Triangle extends Shape{
 2     private double p;
 3     private double a;
 4     private double b;
 5     private double c;
 6     Triangle(double a, double b, double c){
 7         this.a = a;
 8         this.b = b;
 9         this.c = c;
10         this.p = (a+b+c)/2;
11     }
12 
13 
14     double Area(){
15         return Math.sqrt(p*(p-a)*(p-b)*(p-c));
16     }
17 
18 }

 

实验代码(二)

Shape.java

1 public interface Shape {
2      double size();
3 }

 

Line.java

 1 public class Line implements Shape {
 2     private double a;
 3 
 4     Line(double a){
 5         this.a = a;
 6     }
 7 
 8     @Override
 9     public double size(){
10         return  a;
11     }
12 }

 

Round.java

 1 public class Round implements Shape{
 2     private double r;
 3     Round(double radius){
 4         this.r = radius;
 5     }
 6 
 7     @Override
 8     public double size() {
 9         return 2*Math.PI*r;
10     }
11 }

 

总结

最最基础的继承&覆盖重写,仔细即可。

posted @ 2019-10-08 21:46  harsonyoung  阅读(232)  评论(0)    收藏  举报