java 多态和接口实现
java polymorphism and interface implementation
我是二年级学生,我们目前正在学习 Java。我很困惑如何在标题上做这两个,尤其是在为我们提供的练习中。希望得到意见和帮助。谢谢!
问题:创建一个名为Comparison的接口,其方法可用于比较两个
时间objects。这些方法将包括 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();
}
}
感谢您的帮助!
- Java 编译器不允许在同一个 java 文件中有 2 个
public
外部(顶级)classes
- 如果java文件有顶层
public
class,那么文件名应该匹配顶层public
class名称
- 根据示例代码,
am
和 pm
的比较似乎与 Time
无关
- 在实际代码中,需要检查
Time
引用的 null
值
- return 类型
boolean
的方法应该 return 一个 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 与时间无关。我们可以通过两种方式打发时间。
- 创造自己的时间class并使用它。
- 使用 dateTime/Date/calendar classes 提供时间值。
步骤:1 => 创建 Main class。
步骤:2 => 在 class 之外创建一个接口。将时间数据类型设为long。
interface Comparison {
boolean isGreater(long xTime, long yTime);
boolean isLess(long xTime, long yTime);
boolean isEqual(long xTime, long yTime);
}
步骤 :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 => 将调用语句写入 main 方法并使用来自 java.utils
的日期对象传递时间
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();
}
希望对您有所帮助。
我是二年级学生,我们目前正在学习 Java。我很困惑如何在标题上做这两个,尤其是在为我们提供的练习中。希望得到意见和帮助。谢谢!
问题:创建一个名为Comparison的接口,其方法可用于比较两个 时间objects。这些方法将包括 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();
}
}
感谢您的帮助!
- Java 编译器不允许在同一个 java 文件中有 2 个
public
外部(顶级)classes - 如果java文件有顶层
public
class,那么文件名应该匹配顶层public
class名称 - 根据示例代码,
am
和pm
的比较似乎与Time
无关 - 在实际代码中,需要检查
Time
引用的null
值 - return 类型
boolean
的方法应该 return 一个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 与时间无关。我们可以通过两种方式打发时间。
- 创造自己的时间class并使用它。
- 使用 dateTime/Date/calendar classes 提供时间值。
步骤:1 => 创建 Main class。 步骤:2 => 在 class 之外创建一个接口。将时间数据类型设为long。
interface Comparison {
boolean isGreater(long xTime, long yTime);
boolean isLess(long xTime, long yTime);
boolean isEqual(long xTime, long yTime);
}
步骤 :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 => 将调用语句写入 main 方法并使用来自 java.utils
的日期对象传递时间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();
}
希望对您有所帮助。