资料deliver(),制作课件ppt(),在线直播video(),上传作业uploadhomework(),布置作业assign()。第六个步骤是可选择的,检查作业check(),提供一个钩子方法是否需要检查作业,这么一个方法,来决定要不要检查作业这个步骤。写两个子类,需要检查作业的,和不需要检查作业的来,用java设计程序
时间: 2023-12-24 17:01:57 浏览: 71
微笑的向日葵小学环保教育课件PPT模板.pptx
好的,根据您的要求,我来设计这个程序。
首先,我们需要一个父类Assignment,它包含了前五个步骤的方法和一个钩子方法needCheck(),用于决定是否需要检查作业。代码如下:
```java
public abstract class Assignment {
public void deliver() {
System.out.println("资料deliver()");
}
public void makePPT() {
System.out.println("制作课件ppt()");
}
public void liveVideo() {
System.out.println("在线直播video()");
}
public void uploadHomework() {
System.out.println("上传作业uploadhomework()");
}
public void assign() {
System.out.println("布置作业assign()");
}
public boolean needCheck() {
return true;
}
public final void check() {
if (needCheck()) {
System.out.println("检查作业check()");
} else {
System.out.println("不需要检查作业");
}
}
}
```
然后,我们创建两个子类,一个是需要检查作业的,一个是不需要检查作业的。需要检查作业的子类重写了needCheck()方法,返回true,而不需要检查作业的子类则返回false。代码如下:
```java
public class NeedCheckAssignment extends Assignment {
@Override
public boolean needCheck() {
return true;
}
}
public class NoNeedCheckAssignment extends Assignment {
@Override
public boolean needCheck() {
return false;
}
}
```
最后,我们来测试一下程序:
```java
public class Test {
public static void main(String[] args) {
Assignment assignment1 = new NeedCheckAssignment();
assignment1.deliver();
assignment1.makePPT();
assignment1.liveVideo();
assignment1.uploadHomework();
assignment1.assign();
assignment1.check();
System.out.println("===============");
Assignment assignment2 = new NoNeedCheckAssignment();
assignment2.deliver();
assignment2.makePPT();
assignment2.liveVideo();
assignment2.uploadHomework();
assignment2.assign();
assignment2.check();
}
}
```
输出如下:
```
资料deliver()
制作课件ppt()
在线直播video()
上传作业uploadhomework()
布置作业assign()
检查作业check()
===============
资料deliver()
制作课件ppt()
在线直播video()
上传作业uploadhomework()
布置作业assign()
不需要检查作业
```
可以看到,第一个子类执行check()方法时输出了“检查作业check()”,而第二个子类输出了“不需要检查作业”。
阅读全文