这里超类中的私有变量如何在子类中继承?

时间:2018-09-15 08:28:01

标签: java

package practice;

class person{
private String firstname;
private String lastname;

public person(String firstname,String lastname){
    set_first(firstname);
    set_last(lastname);
}

public String get_first() {
    return firstname;
}
public void set_first(String firstname) {
    this.firstname=firstname;
}
public void set_last(String lastname) {
    this.lastname=lastname;
}
public String get_last() {
    return lastname;
}
}

class employee extends person{  
private int empid;  
public employee(String firstname,String lastname,int empid){  
    super(firstname,lastname);  
    set_empid(empid);
}

public void set_empid(int empid) {
    this.empid=empid;
}
public int get_empid() {
    return empid;
}
}

class testing_super_keyword {  
public static void main(String args[]) {  
    employee emp=new employee("John","Jackson",1234);  
    System.out.println(emp.get_first()+"  "+emp.get_last());  
    System.out.println(emp.get_empid());  
}
}

任何人都可以解释,即使已将班级人员“名字”和“姓氏”的属性声明为私有,班级雇员如何继承班级人员?

据我所知,子类不能继承声明为私有的超类变量。

1 个答案:

答案 0 :(得分:1)

这被认为是良好的编程习惯,在这种情况下,您不通过使用private access specifiers来直接访问类的实例变量,而是提供public getter and setter methods来获取和设置实例变量。 / p>

在这种情况下,您不能直接访问SuperClass的实例变量,但是您声明了public getter and setter methods(get_first, set_first),就可以使用它们。

此外,按照Java命名约定,将camelCase名称用于函数。例如,使用getName和son代替get_name。