关于在子类编写构造方法,并调用父类相关赋值方法,完成属性赋值的问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | //测试类: public class Test { public static void main(String[] args) { System.out.print( "父类信息测试:" ); Work one= new Work(); System.out.println(one.work()); System.out.print( "测试工作类信息测试:" ); TestWork two= new TestWork( "测试工作" , 10 , 5 ); System.out.println(two.work()); System.out.print( "研发工作类信息测试:" ); DevelopmentWork three= new DevelopmentWork( "研发工作" , 1000 , 10 ); System.out.println(three.work()); } } //父类Work public class Work { // 属性:工作ming private String name ; // 无参构造方法 public Work(){ } // 带参构造方法,完成工作类型的赋值 public Work(String name){ this .setName(name); } // 公有的get***/set***方法完成属性封装 public void setName(String name){ this .name=name; } public String getName(){ return this .name; } // 方法:工作描述,描述内容为:开心工作 public String work(){ String str1= "开心工作" ; return str1; } } //子类TestWork public class TestWork extends Work { //属性:编写的测试用例个数、发现的Bug数量 private int caseNumber; //测试用例个数 private int bugNumber; //发现的Bug数量 // 编写构造方法,并调用父类相关赋值方法,完成属性赋值 public TestWork(String name, int caseNumber, int bugNumber){ super .setName(name); //此处应该用super.setName(name)还是应该用this.setName(name)?????,直接用super(name)可以吗? this .setCaseNumber(caseNumber); this .setBugNumber(bugNumber); } // 公有的get***/set***方法完成属性封装 public void setCaseNumber( int caseNumber){ this .caseNumber=caseNumber; } public int getCaseNumber(){ return this .caseNumber; } public void setBugNumber( int bugNumber){ this .bugNumber=bugNumber; } public int getBugNumber(){ return bugNumber; } // 重写运行方法,描述内容为:**的日报是:今天编写了**个测试用例,发现了**bug。其中**的数据由属性提供 public String work() { String str2= this .getName()+ "的日报是:" + "今天编写了" + this .getCaseNumber()+ "个测试用例," + "发现了" + this .getBugNumber()+ "个bug" ; return str2; } } //子类 public class DevelopmentWork extends Work { // 属性:有效编码行数、目前没有解决的Bug个数 private int codeNumber; //编码行数 private int unsBugNumber; //未解决的Bug个数 //编写构造方法,并调用父类相关赋值方法,完成属性赋值 public DevelopmentWork(String name, int codeNumber, int unsBugNumber){ // this.setName(name); super (name); this .setCodeNumber(codeNumber); this .setUnsBugNumber(unsBugNumber); } // 公有的get***/set***方法完成属性封装 public void setCodeNumber( int codeNumber){ this .codeNumber=codeNumber; } public int getCodeNumber(){ return this .codeNumber; } public void setUnsBugNumber( int unsBugNumber){ this .unsBugNumber=unsBugNumber; } public int getUnsBugNumber(){ return this .unsBugNumber; } // 重写运行方法,描述内容为:**的日报是:今天编写了**行代码,目前仍然有**个bug没有解决。其中**的数据由属性提供 public String work() { String str3= this .getName()+ "的日报是:" + "今天便编写了" + this .getCodeNumber()+ "行代码," + "目前仍然有" + this .getUnsBugNumber()+ "个bug没有解决" ; return str3; } } 我的问题:在父类Work类中,带参构造方法只有(String work)一个参数;在子类TestWork中,编写构造方法,并调用父类相关赋值方法,完成属性赋值应该如何操作? 是必须在子类的构造方法中把父类构造方法中的参数全部添加后,再加入子类特有属性的参数,然后进行赋值,应该用 super .setName(name)还是应该用 this .setName(name)?????,直接用 super (name)可以吗? 还是在子类的构造方法中只写子类特有属性对应的参数,然后调用父类的相关方法再进行参数的相关赋值? 在创建子类的构造方法时,如何调用父类的构造方法,并完成属性赋值???求老师解答。 在创建子类的构造方法时,如何调用父类的构造方法,并完成属性赋值???求老师解答。 在创建子类的构造方法时,如何调用父类的构造方法,并完成属性赋值???求老师解答。 |
7
收起
正在回答 回答被采纳积分+1
1回答
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧