zoukankan      html  css  js  c++  java
  • 第十三节:接口和抽象类实验

    标题图

    目的

    1.抽象类的概念
    2.接口的定义和实现

    要求

    1.编写一个抽象类Shape,声明计算图形面积的抽象方法。

    再分别定义Shape的子类Circle(圆)和Rectangle(矩形),在两个子类中按照不同图形的面积计算公式,实现Shape类中计算面积的方法。定义测试类ShapeTest对圆和矩形的面积和周长进行测试。

    2.定义一个接口ITest,接口中有3个抽象方法如下。

    (1)“long fact(int m);”方法的功能为求参数的阶乘。
    (2)“long intPower(int m,int n);”方法的功能为求参数m的n次方。
    (3)“boolean findFactor(int m,int n);”方法的功能为判断参数m加上参数n的和是否大于100。

    定义类Test实现该接口,在主方法中对3个方法进行测试,并将调用方法所得的结果输出。

    实现步骤参考:

    抽象类的定义和使用:
    1.定义抽象类Shape:

    //抽象类的定义,抽象类中可以有抽象的方法,也可以具体已实现的方法
    public abstract class Shape {
     public abstract double area();
     public abstract double zhou();
    }

    2.定义抽象类的子类Circle:

    //抽象类的子类必实现抽象类中所有的抽象方法,否则该类还是抽象的
    public class Cricle extends Shape {
     //为具体图形类添加属性
     private double r;
     private final double PI=3.14;
     //为具体圆形添加构造方法
     public Circle(){
      super();
     }
     public Circle(double r){
      super();
      this.r = r;
     }
     //修改具类的方法实现,返回计算出的圆的面积
     @Override
     public double area(){
     return PI*r*r;
     }
     //修改具类的方法实现,返回计算的圆的周长
     @Override
     public double zhou(){
      return PI*2*r;
     }
     public static void main(String[] args){
     }
    }

    3.在主方法中添加测试的对象,对方法进行测试输入结果

    public static void main(String[] args){
     //定义圆形类对象,并用具体图形类圆实例化
     Shape shape = new Circle(1);
     System.out.println(shape.area());
     System.out.println(shape.zhou());
    }

    接口的定义和使用:

    1.用interface关键字定义接口:

    //接口定义使用interface关键字
    //接口中所有的方法都是公有的抽象的,public abstract 可以省略
    public interface Shape {
     double area();
     double zhou();
    }

    2.定义接口的实现类

    //具体类Circle必须实现(implements)接口中所有抽象的方法
    public class Circle implements Shape {
     //为具体图形添加属性
     private double r;
     private final double PI = 3.14;
     //为具体图形类添加构造方法
     public Circle(){
      super();
     }
     public Circle(double r){
     super();
     this.r=r;
     }
     //修改具体类的方法实现
     @Override
     public double area(){
      return PI*r*r;
     }
     @Override
     public double zhou(){
      return PI*2*r;
     }
     public static void main(String[] args){
     }
    }

    3.在主方法中添加测试的对象,对方法进行测试输入结果

    public static void main(String[] args){
     Shape shape = new Circle(1);
     System.out.println(shape.zhou());
     System.out.println(shape.area());
    }

    小礼物走一走 or 点赞

    图片

  • 相关阅读:
    在ASP.NET 5中使用SignalR
    直传文件到Azure Storage的Blob服务中
    利用IdentityServer3在ASP.NET 5和Angular中实现OAuth2 Implicit Flow
    【IDEA】如何设置代码超出长度限制时自动换行
    【IEDA】Typo: In woed 'xxx' more...(Ctrl + F1) 拼写检查
    【IDEA】URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs
    【IDEA】创建的 maven 项目,右键 New --> XML Configuration File 时,无 Spring Config 选项
    RHEL8网络配置
    Python GUI界面编程-初识
    Deepin系统中如何安装Visual Studio Code
  • 原文地址:https://www.cnblogs.com/dashucoding/p/11932586.html
Copyright © 2011-2022 走看看