美文网首页美文共赏
如何用Java测试抽象类和接口?

如何用Java测试抽象类和接口?

作者: 软件测试小白 | 来源:发表于2021-12-11 22:07 被阅读0次

1、定义一个代表“形状”的抽象类,其中包括求形状面积的抽象方法。继承该抽象类定义三角型、矩形、圆。分别创建一个三角形、矩形、圆存入一个数组中,访问数组元素将各类图形的面积输出。

  public class Test1 {

  public static void main(String[] args) {//主方法

  Triangle s1=new Triangle(30, 40, 50);//创建三角形对象

  Rectangle s2=new Rectangle(10,20);//创建矩形对象

  Circle s3=new Circle(15);//创建圆形对象

  Shape arr[]={s1,s2,s3};//创建形状对象数组

  for(int i=0;i<arr.length;i++)//遍历

  arr[i].area();//调用方法

  }

  }

  abstract class Shape{//形状的抽象类

  abstract void area();//定义抽象方法

  }

  class Triangle extends Shape{//三角形的类,继承抽象类

  double a;//定义成员变量,三条边

  double b;

  double c;

  public Triangle(double a,double b,double c){//定义构造函数,分别给三条边赋值

  this.a=a;

  this.b=b;

  this.c=c;

  }

  public void area(){//计算面积

  double p = (a + b +c) / 2;//海伦公式

  double s=Math.sqrt(p * (p - a) * (p- b) * (p- c));

  System.out.println("三角形的面积为:"+s);//打印

  }

  }

  class Rectangle extends Shape{//矩形的类,继承抽象类

  double width;//定义成员变量,高和宽

  double height;

  public Rectangle(double width, double height) {//定义构造函数,分别给高和宽赋值

        this.width = width;

        this.height = height;

  }

  public void area(){//计算面积

  double s=width*height;

  System.out.println("矩形的面积为:"+s);//打印

  }

  }

  class Circle extends Shape{//圆的类,继承抽象类

  double r;//定义成员变量,半径r

  public Circle(double r){//定义构造函数,给半径赋值

  this.r=r;

  }

  public void area(){//计算面积

  double s=Math.PI*r*r;

  System.out.println("圆的面积为:"+s);//打印

  }

  }

  2、定义一个代表“形状”接口,其中包括求形状面积的抽象方法。

· 定义三角型、矩形、圆实现该接口。

· 分别创建一个三角形、矩形、圆存入一个数组中,

  · 访问数组元素将各类图形的面积输出。

  public class Test2 {

  public static void main(String[] args) {//主方法

  Triangle1 s1=new Triangle1(20, 30, 40);//创建三角形对象

  Rectangle1 s2=new Rectangle1(20,50);//创建矩形对象

  Circle1 s3=new Circle1(50);//创建圆形对象

  Shape1 arr[]={s1,s2,s3};//创建形状对象数组

  for(int i=0;i<arr.length;i++)//遍历

  arr[i].area();//调用方法

  }

  }

  /*

  因为与第一题所创建的类名一样,会报错,所以在类名和接口的名字后面加了一个1.

  */

  interface Shape1{//形状的接口

  void area();//定义方法

  }

  class Triangle1 implements Shape1{//创建三角形的类,继承接口

  double a;//定义成员变量,三角形的三条边

  double b;

  double c;

  public Triangle1 (double a,double b,double c){//定义构造函数,分别给三条边赋值

  this.a=a;

  this.b=b;

  this.c=c;

  }

  public void area(){//计算面积

  double p = (a + b +c) / 2;//海伦公式

  double s=Math.sqrt(p * (p - a) * (p- b) * (p- c));

  System.out.println("三角形的面积为:"+s);//打印

  }

  }

  class Rectangle1 implements Shape1{//创建矩形的类,继承接口

  double width;//定义成员变量,高和宽

  double height;

  public Rectangle1 (double width, double height) {//定义构造函数,分别给高和宽赋值

        this.width = width;

        this.height = height;

  }

  public void area(){//计算面积

  double s=width*height;

  System.out.println("矩形的面积为:"+s);//打印

  }

  }

  class Circle1 implements Shape1{//创建园的类,继承接口

  double r;//定义成员变量,半径

  public Circle1 (double r){//定义构造函数,给半径赋值

  this.r=r;

  }

  public void area(){//计算面积

  double s=Math.PI*r*r;

  System.out.println("圆的面积为:"+s);//打印

  }

  }

3、定义一个抽象类-水果,其中包括getWeight()方法,编写程序分别创建苹果、桃子、橘子三个类,创建若干水果对象存放在一个水果类型的数组中,输出数组中所有水果的类型、重量。提示:利用对象的getClass().getName()方法可获取对象的所属类的名称。

  public class Test3 {

  public static void main(String[] args) {//主方法

  Apple s1=new Apple(10);//创建苹果的对象

  Peach s2=new Peach(20);//创建桃子的对象

  Orange s3=new Orange(30);//创建橘子的对象

  Fruits arr[] ={s1,s2,s3};//创建水果对象数组

  for(int i=0;i<arr.length;i++){//遍历

  System.out.print(arr[i].getClass().getName()+",重量为:"+arr[i].getWeight());

  //打印类名和水果重量

  System.out.println();//换行

  }

  }

  }

  abstract class Fruits {//创建水果抽象类

  abstract double getWeight();//定义方法

  }

  class Apple extends Fruits {//创建苹果类,继承水果

  double weight;//定义成员变量,重量

  public Apple (double weight){//定义构造函数,给重量赋值

  this.weight=weight;

  }

  public double getWeight() {//获取重量的方法

  return weight;//返回重量

  }

  }

  class Peach extends Fruits {//创建桃子类,继承水果

  double weight;//定义成员变量,重量

  public Peach (double weight){//定义构造函数,给重量赋值

  this.weight=weight;

  }

  public double getWeight() {//获取重量的方法

  return weight;//返回重量

  }

  }

  class Orange extends Fruits {//创建橘子类,继承水果

  double weight;//定义成员变量,重量

  public Orange (double weight){//定义构造函数,给重量赋值

  this.weight=weight;

  }

  public double getWeight() {//获取重量的方法

  return weight;//返回重量

  }

  }

相关文章

  • 如何用Java测试抽象类和接口?

    1、定义一个代表“形状”的抽象类,其中包括求形状面积的抽象方法。继承该抽象类定义三角型、矩形、圆。分别创建一个三角...

  • 接口类&抽象类

    java的接口类和抽象类的特点 java中抽象类的特点: 抽象类和抽象方法必须用关键字abstract修饰 2.如...

  • Java基础-抽象类和接口

    抽象类和接口也是 Java 面试中常考的,下面就来总结一下抽象类和接口的相关知识。 抽象类是类,Java 中类是单...

  • java抽象类和接口小记

    Java抽象类和接口小记 Java抽象类和接口实现了java的多态.多态是面向对象程序语言的核心,在项目开发过程中...

  • java abstract

    参考java抽象类和抽象方法Android开发:抽象类(abstract class)和接口(Interface)...

  • 深入理解Java的接口和抽象类

    深入理解Java的接口和抽象类

  • 7.Java抽象类和接口,基本类有什么区别

    问题:Java抽象类和接口,基本类有什么区别? 抽象 概念:使用了关键字 abstract 声明的类叫做抽象类。如...

  • Java 接口知识点

    接口的特性 函数式接口 抽象类和接口区别 Lambda表达式 java常用接口

  • java抽象类和接口

    参考:java抽象类和接口--树上月 总结:1.抽象类在java语言中体现的是继承关系,即"is-a"关系,而接口...

  • Java抽象类和接口类

    Java中接口和抽象类的区别是什么?什么时候用接口?什么时候用抽象类?抽象类和接口存在的意义是什么?能解决哪些编程...

网友评论

    本文标题:如何用Java测试抽象类和接口?

    本文链接:https://www.haomeiwen.com/subject/gtelfrtx.html