假设我有一个超级班Person
和子类Employee
我想首先创建一个person
类,然后将其用作param放入我的employee
类的构造函数中。
E.g。 Public Empolyee
(Person person ....)(这会在编译期间产生构造函数未找到错误)
My Case场景是我有一个Person
对象尚未实例化为员工,后来我想用它来实例化一个Employee
对象,我想通过这个人的变数结束了。
那我该怎么做?另外请解释是否应该这样做。
答案 0 :(得分:2)
由于继承关系,您可以通过Employee类直接访问所有Person类成员。您不需要将父对象传递给子对象。
将所有必要的参数传递给Employee,并从其构造函数中调用super()。
//Person constructor
Person(param1, param2){
}
class Employee extends Person
//Employee constructor
Employee(param1, param2){
super(param1, param2);
}
// New object
Employee emp = new Employee(param1, param2);
同样构造函数不会返回任何内容,因此请删除问题中的空白。
答案 1 :(得分:0)
Child
类会自动获取public, protected
的所有parent
成员的访问权限,而child
也会引用parent
类。
为什么要将parent
类引用传递给Child
类。相反,您可以从parent
类调用child
类构造函数,如下所示:
public Child(){
super()
}
根据以下问题,我们可以这样做:
public class Child1 extends Super1 {
private int l;
public Child1(Super1 s){
super(s);
}
public Child1(){
this.l=20;
}
}
public class Super1 {
private int k;
public Super1(){
}
public Super1(Super1 s){
k=s.k;
}
}
答案 2 :(得分:0)
我没有正确地看到你的继承逻辑。
你已经回答了......见下文
class person()
class employee extends person(here)
因此你可以访问它的变量和方法..
只是好奇为什么你需要实例化员工并注入已经是员工父母的人员类。
答案 3 :(得分:0)
您的员工将以个人身份工作。您可以通过Employee对象调用Person的每个方法或变量(私有变量和方法除外)。但是如果你想将Person对象传递给Employee类的构造函数,那么你可以将其作为fallows来实现 -
public Employee(Person person,.......){
super();//or pass required parameters according to constructor of Person class
//do whatever you want
}
它会完美运作。
答案 4 :(得分:0)
试试这个:
//if your Person constructor looks like this
public Person(param1, param2){
}
//then your copy constructor would look like this
public Employee(Person p){
super(p.getParam1 p.getParam2);
}