抛砖引玉
摘自:《大话设计模式》
重复=易错+难改
学生张三抄的试卷
public class ZhangSanPaper {
public void test1(){ //试题1
System.out.println("不属于java关键字: A.int B.user C.static D.public");
System.out.println("答案:b");
}
public void test2(){ //试题2
System.out.println("console.log(false == '0');console.log(false === '0');console.log(false == 'false');输出结果为 "
+ " A.true false fasle B.false fasle true C.false true fasle D.flale false fasle");
System.out.println("答案:a");
}
public void test3(){ //试题3
System.out.println("使用Java语言编写的源程序保存时的文件扩展名是( )。(A).class (B).java (C).cpp (D).txt");
System.out.println("答案:b");
}
}
李四抄的试卷
public class LiSiPaper {
public void test1(){ //试题1
System.out.println("不属于java关键字: A.int B.user C.static D.public");
System.out.println("答案:c");
}
public void test2(){ //试题2
System.out.println("console.log(false == '0');console.log(false === '0');console.log(false == 'false');输出结果为 "
+ " A.true false fasle B.false fasle true C.false true fasle D.flale false fasle");
System.out.println("答案:b");
}
public void test3(){ //试题3
System.out.println("使用Java语言编写的源程序保存时的文件扩展名是( )。(A).class (B).java (C).cpp (D).txt");
System.out.println("答案:a");
}
}
测试
package moban.shejimoshi.test02;
public class Test {
public static void main(String[] args) {
System.out.println("学生张三抄的试卷");
ZhangSanPaper zhangSanPaper = new ZhangSanPaper();
zhangSanPaper.test1();
zhangSanPaper.test2();
zhangSanPaper.test3();
System.out.println("=======================================");
System.out.println("学生李四抄的试卷");
LiSiPaper liSiPaper = new LiSiPaper();
liSiPaper.test1();
liSiPaper.test2();
liSiPaper.test3();
}
}
提炼代码
试卷父类代码
public class TestPaper {
public void test1(){ //试题1
System.out.println("不属于java关键字: A.int B.user C.static D.public");
}
public void test2(){ //试题2
System.out.println("console.log(false == '0');console.log(false === '0');console.log(false == 'false');输出结果为 "
+ " A.true false fasle B.false fasle true C.false true fasle D.flale false fasle");
}
public void test3(){ //试题3
System.out.println("使用Java语言编写的源程序保存时的文件扩展名是( )。(A).class (B).java (C).cpp (D).txt");
}
}
学生张三抄的试卷
package moban.shejimoshi.test03;
public class ZhangSanPaper extends TestPaper{
@Override
public void test1(){ //试题1
super.test1();
System.out.println("答案:b");
}
@Override
public void test2(){ //试题2
super.test2();
System.out.println("答案:a");
}
@Override
public void test3(){ //试题3
super.test3();
System.out.println("答案:a");
}
}
李四抄的试卷
package moban.shejimoshi.test03;
public class LiSiPaper extends TestPaper{
@Override
public void test1(){ //试题1
super.test1();
System.out.println("答案:c");
}
@Override
public void test2(){ //试题2
super.test2();
System.out.println("答案:b");
}
@Override
public void test3(){ //试题3
super.test3();
System.out.println("答案:c");
}
}
测试代码略
父类代码
package moban.shejimoshi;
public class TestPaper {
public void test1(){ //试题1
System.out.println("不属于java关键字: A.int B.user C.static D.public");
System.out.println("答案:"+answer1());
}
public void test2(){ //试题2
System.out.println("console.log(false == '0');console.log(false === '0');console.log(false == 'false');输出结果为 "
+ " A.true false fasle B.false fasle true C.false true fasle D.flale false fasle");
System.out.println("答案:"+answer2());
}
public void test3(){ //试题3
System.out.println("使用Java语言编写的源程序保存时的文件扩展名是( )。(A).class (B).java (C).cpp (D).txt 2");
System.out.println("答案:"+answer3());
}
public String answer1() {
return "";
}
public String answer2() {
return "";
}
public String answer3() {
return "";
}
}
张三
public class ZhangSanPaper extends TestPaper {
@Override
public String answer1() {
return "a";
}
@Override
public String answer2() {
return "b";
}
@Override
public String answer3() {
return "b";
}
}
李四
public class LiSiPaper extends TestPaper {
@Override
public String answer1() {
return "b";
}
@Override
public String answer2() {
return "a";
}
@Override
public String answer3() {
return "d";
}
}
测试代码略
UML图