Java学习:继承

来源:互联网 发布:淘宝调货时间 编辑:程序博客网 时间:2024/06/13 21:05

1java中子类不能调用父类的私有变量,以及其中调用的时候要用到super:

代码:

package firstcode;import java.util.*;public class My{    public static void main()    {        System.out.print("123");        Manager boss = new Manager("carl",10000000,1994,1,2);        boss.setBonus(50000);        Employee[] staff = new Employee[1];        staff[0] = boss;        for(int i=0;i<staff.length;i++)        {            Employee e = staff[i];            System.out.println(e.getName()+" "+e.getSalary());        }    }}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;    }    public void raiseSalary(double byPercent)    {        double raise = salary*byPercent/100;        salary += raise;    }    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);        bonus = 0;        //super 调用必须是子类的第一条语句。    }    public void setBonus(double b)    {        bonus = b;    }    public double getSalary()    {        double baseSalary = super.getSalary();        return baseSalary+bonus;        //其中这样是不可以的 : return (salary+bonus)没法工作        //子类不能直接调用父类的私有字段。        //也不能 return (getSalary()+bonus),        //这里getSalary:就是无限的调用自己    }    private double bonus;}
0 0
原创粉丝点击