简述
在设计类的时候,应该将通用的方法放在父类中,而将具有特殊用途的方法放在子类中。
子类对象只能继承父类的非私有属性和方法
java面向对象编程,则我们在创建类时,有些类会具有公共的属性和方法,为了使代码能够复用,我们把这些几个类共有的属性和方法放在父类中,其他类继承这个父类,则便具有了父类公有的属性和方法,同时子类还可以添加一些新的属性和方法,以满足新的需求。
关键字
extends
class Manager extends Employee
{
}
super
super不是一个对象的引用,不能将super赋给另一个对象变量,它只是一个指示编译器调用超类方法的特殊关键字
1、调用超类的方法
class Manager extends Employee
{
public double getSalary()
{
double baseSalary = super.getSalary();
return baseSalary+bonus;
}
}
2、super调用超类的构造器
使用super调用构造器的语句必须是子类构造器的第一句语句
如果子类的构造器没有显式得调用超类的构造器,则将自动调用超类默认(无参)的构造器。如果超类没有不带参数的构造器,并且在子类中又没有显式的调用超类的其他构造器,则java编译器将报告错误
public Manager(String n,double s,int year,int month,int day)
{
//调用超类Employee中含有n,s,year,month,day参数的构造器
super(n,s,year,month,day);
bonus = 0;
}
//调用超类Employee中含有n,s,year,month,day参数的构造器
super(n,s,year,month,day);
继承层次(inheritance hierarchy)
继承并不限于一个层次,如Manager继承了Employee,Executive又继承了Manager。
由一个公共超类派生出来的所有类的集合被称为继承层次。在继承层次中,从某个特定的类到其祖先路径被称为该类的继承链。一个祖先类可以拥有多个子孙继承链。
访问权限
Java 子类重写继承的方法时,不可以降低方法的访问权限,子类继承父类的访问修饰符要比父类的更大,也就是更加开放。
假如我父类是protected修饰的,其子类只能是protected或者public,绝对不能是friendly(默认的访问范围)或者private,当然使用private就不是继承了。还要注意的是,继承当中子类抛出的异常必须是父类抛出的异常的子异常,或者子类抛出的异常要比父类抛出的异常要少。