关于在子类编写构造方法,并调用父类相关赋值方法,完成属性赋值的问题
//测试类: 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积分~
来为老师/同学的回答评分吧
0 星