关于在子类编写构造方法,并调用父类相关赋值方法,完成属性赋值的问题
//测试类:
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 星