class c中都没有看到name和age

解决方案 »

  1.   

    name和age是private的,不会被继承
    把private去掉或改成protected就行了
      

  2.   

    但是我下面这个程序也是私有成员变量,为什么又可以运行呢?import java.util.*;public class Test
    {
    public static void main(String[] args)
    {
    Manager a = new Manager("abc", 6000, 2003, 11, 15);
    Manager b = new Manager("efg", 7000, 2002, 10, 13);

    A<Manager> c = new A<Manager>(a, b);
    printC(c);

           
    }

    public static void printC(A<? extends Employee> p)
        {
         Employee first = p.getFirst();
         Employee second = p.getSecond();
         System.out.println(first.getName() + second.getName());
        }
     
    }class A<Object>
    {
    public A(Object first, Object second)
    {
    this.first = first;
    this.second = second;
    }

    public Object getFirst()
    {
    return first;
    }

    public Object getSecond()
    {
    return second;
    }

    public void setFirst(Object newValue)
    {
    first = newValue;
    }

    public void setSecond(Object newValue)
    {
    second = newValue;
    }
    private Object first;
    private Object second;
    }class Employee
    {
    public Employee(String n, double s, int year, int month, int day)
    {
    name = n;
    salary = s;
    GregorianCalendar calendar = new GregorianCalendar(year, month-1, day);
    hireDay = calendar.getTime();
    }

    public String getName()
    {
    return name;
    }

    public double getSalary()
    {
    return salary;
    }

    public Date getHireDay()
    {
    return hireDay;
    }

    private String name;
    private double salary;
    private Date hireDay;
    }class Manager extends Employee
    {
    public Manager(String n, double s, int year, int month, int day)
    {
    super(n, s, year, month, day);
    donus = 0;
    }

    public void setBonus(double b)
    {
    donus = b;
    }

    public double getBonus()
    {
    return donus;
    }

    public double getSalary()
    {
    return super.getSalary() + donus;
    }

    private double donus;
    }在这个程序中Employe中的私有成员变量不也被Manager继承来了吗?