class Empolyee{
private String name;
private int salary;
public Empolyee(String name,int salary){
this.name = name;
this.salary = salary;
}
public String getDetails(){
return "Name:"+name+"\nsalary:"+salary;
}
}
class Manager extends Empolyee{
private String department;
public Manager(String name,int salary,String department){
super(name,salary);
this.department = department;
}
public String getDetails(){
return super.getDetails()+"\ndepartment:"+department;
}
}
public class TestSuper{
public static void main(String args[]){
Manager m = new Manager("Tom",2000,"Finace");
System.out.println(m.getDetails());
}
}
manager是不能继承Empolyee中name和salary的,也就是说manager中的属性只有一个:department。但结果为什么却显示了name和salary属性 ?另外,程序中的this指的是Manager还是Empolyee呢?
private String name;
private int salary;
public Empolyee(String name,int salary){
this.name = name;
this.salary = salary;
}
public String getDetails(){
return "Name:"+name+"\nsalary:"+salary;
}
}
class Manager extends Empolyee{
private String department;
public Manager(String name,int salary,String department){
super(name,salary);
this.department = department;
}
public String getDetails(){
return super.getDetails()+"\ndepartment:"+department;
}
}
public class TestSuper{
public static void main(String args[]){
Manager m = new Manager("Tom",2000,"Finace");
System.out.println(m.getDetails());
}
}
manager是不能继承Empolyee中name和salary的,也就是说manager中的属性只有一个:department。但结果为什么却显示了name和salary属性 ?另外,程序中的this指的是Manager还是Empolyee呢?
this:是当前对象,即是Manager
super:是父类对象,当使用super.xx();是调用父类的方法!
再者private属性和方法不能被子类访问的,它其实是继承下来了的,但是是不能访问的!
private权限限制只有在当前类内部能访问。
protected是包内能访问。
public是所有的都能访问。
默认的是包访问权限。这里只是访问权限问题,并不是没有继承。