在java中什么情况下子类构造方法一定要用super()调用父类构造方法?最好举例子。
在java中什么情况下子类构造方法一定要用super()调用父类构造方法?最好举例子。在实例化子类对象时不也是调用了父类构造方法创建了父类对象吗?...
在java中什么情况下子类构造方法一定要用super()调用父类构造方法?最好举例子。在实例化子类对象时不也是调用了父类构造方法创建了父类对象吗?
展开
2个回答
展开全部
一般用super要不就是传参数过去,要不就是调用父类的方法或属性。
比如装饰模式。
Project employe = new Employe(); //程序员
Project managerA = new ManagerA(employe); //项目经理A 将手下的程序员当成参数传过去
public class ManagerA extends Manager //继承通用项目经理
public ManagerA(Project project) {
super(project); //跳到下面去了。因为编码是通用的工作所以不在具体的项目经理A这里实现
}
public class Manager implements Project
private Project project;
public Manager(Project project) {
this.project = project;
}
/**
* 模板:定义项目经理自己的事情
*/
public void startWork() {
//早期工作
doEarlyWork();
// 程序员编码
project.doCoding(); //根据传进来的程序员对象进行编码
// 收尾工作
doEndWork();
}
//在程序员编码的情况下进行前期后期收尾工作的装饰。
managerA.doCoding();
比如装饰模式。
Project employe = new Employe(); //程序员
Project managerA = new ManagerA(employe); //项目经理A 将手下的程序员当成参数传过去
public class ManagerA extends Manager //继承通用项目经理
public ManagerA(Project project) {
super(project); //跳到下面去了。因为编码是通用的工作所以不在具体的项目经理A这里实现
}
public class Manager implements Project
private Project project;
public Manager(Project project) {
this.project = project;
}
/**
* 模板:定义项目经理自己的事情
*/
public void startWork() {
//早期工作
doEarlyWork();
// 程序员编码
project.doCoding(); //根据传进来的程序员对象进行编码
// 收尾工作
doEndWork();
}
//在程序员编码的情况下进行前期后期收尾工作的装饰。
managerA.doCoding();
2014-08-30
展开全部
在实例化子类对象的时候不会创造父类对象的,除非在构造方法中利用super()才构造出父类对象
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询