Java:继承

来源:互联网 发布:朋友圈图片制作软件 编辑:程序博客网 时间:2024/06/06 07:36



//父类代码public class Employee {private String name;private int age;private float salary;public Employee(String name, int age, float salary){this.name = name;this.age = age;this.salary = salary;}public String getName(){return this.name;}public int getAge(){return this.age;}public float getSalary(){return this.salary;}}


//子类代码public class Manager extends Employee{ private float capital;public Manager(String name, int age, float salary, float capital){super(name,age,salary);this.capital = capital;}public float getSalary(){float bossSalary = super.getSalary();return bossSalary + capital;}}
在生成子类对象时,首先要保证父类对象安全初始化,因此在子类构造器中的第一行一定是用super使父类对象进行初始化;

//运行代码public class Test {public static void main(String[] args){Manager boss = new Manager("李植", 25, 5000, 500);Employee emp = new Employee("王成", 21, 2400);System.out.println(boss.getName()+ "\n"+                    boss.getAge()+"\n"+  boss.getSalary());System.out.println(emp.getName()+ "\n"+                                    emp.getAge()+"\n"+  emp.getSalary());}}
Manager构造器初始化时,Manager对象的name、age、salary的值实际是赋给了父类对象中的域,在子类对象中是没有这些域的;

当子类成员变量与父类成员变量同名时,父类成员变量会被隐藏,只有用super才能调用;

当子类方法与父类方法同名时,父类方法会被覆盖;

super用途:1、调用父类中与子类重名的方法或成员;  2、在构造器中对父类进行初始化;

当父类域的权限为private,子类没有权限访问或更改这些成员变量和方法,因此一般将成员设为private,将方向设为public;

0 0
原创粉丝点击