繁体   English   中英

java多态及接口实现

[英]java polymorphism and interface implementation

我是二年级学生,我们目前正在学习 Java。 我很困惑如何在标题上做这两个,尤其是在为我们提供的练习中。 希望得到意见和帮助。 谢谢!

问题:创建一个名为Comparison的接口,其方法可用于比较两个Time 对象。 这些方法将包括isGreater、isLess 和 isEqual 创建另一个将实现这些方法的 class。

到目前为止我的代码:

    import java.util.*;
    interface Comparison {
    boolean isGreater(Time x, Time y);
    boolean isLess(Time x,Time y);
    boolean isEqual(Time x, Time y);
}

public class Time implements Comparison {
    int am, pm;
    public boolean isGreater(Time x, Time y) {
        if (am > pm) {
            System.out.print("True");
        }
        else
            System.out.print("False");
    }
    public boolean isLess(Time x,Time y) {
        if (am < pm) {
            System.out.print("True");
        }
        else
            System.out.print("False");
    }
    public boolean isEqual(Time x, Time y) {
        
    }
    
}
public class Main {
    
    public static void main(String[] args) {
        System.out.println("Enter your first number: ");
        int x = new Time();
        System.out.println("Enter your second number: ");
        int y = new Time();
        
        }
    }

谢谢您的帮助!

  1. Java 编译器不允许在同一个 java 文件中使用 2 个public外部(顶级)类
  2. 如果 java 文件具有顶级public class,则文件名应与顶级public class 名称匹配
  3. 根据示例代码, ampm的比较似乎与Time无关
  4. 在实际代码中,需要检查Time参考以获取null
  5. 返回类型为boolean的方法应返回boolean

示例代码

public boolean isGreater(Time x, Time y) {
  if (x == null && y == null) {
    return true; // you need to decide whether this is true or false
  } else if (x == null || y == null) {
    return false;
  }
  return x.getTime() > y.getTime(); // assumes getTime() returns a number
}

如果我正确理解您的查询,即您尝试比较 2 个不同的时间值(如果这是唯一的情况),请参考以下代码,否则请详细说明您的要求,以便我更正源代码以帮助您。

根据您的源代码,AM 和 PM 与时间无关。 我们可以通过两种方式消磨时间。

  1. 创建自己的时间 class 并使用它。
  2. 使用提供时间值的 dateTime/Date/calendar 类。

步骤:1 => 创建主 class。 步骤:2 => 在 class 之外创建一个接口。 将时间数据类型设置为长。

interface Comparison {
    boolean isGreater(long xTime, long yTime);
    boolean isLess(long xTime, long yTime);
    boolean isEqual(long xTime, long yTime);
}

Step:3 => 创建一个 TimeManager[anyname] class 来实现比较接口。 实现接口方法。

class TimeManager implements Comparison {
    @Override
    public boolean isGreater(long xTime, long yTime) {
        return xTime > yTime ? true : false;
    }

    @Override
    public boolean isLess(long xTime, long yTime) {
        return xTime < yTime ? true : false;
    }

    @Override
    public boolean isEqual(long xTime, long yTime) {
        return xTime == yTime ? true : false;
    }
}

步骤:4 => 将调用语句写入主方法并使用来自 java.utils 的日期 object 传递时间

public static void main(String[] args) {
          System.out.println("Enter your first number: ");
            long x = new Date().getTime();
            System.out.println("Enter your second number: ");
            long y = new Date().getTime();
    }

我希望这会对你有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM