继承是面向对象的编程重要特性之一,也是软件组件复用机制之一,通过继承机制父类可以派生出更具体功能来满足软件需求的变更。通常父类设计为保有一股性通用的成员数据和方法。而子类设计为保有更为具体的成员数据和方法。子类继承父类,可以拥有父类的成员数据和成员方法,以达复用的目的。
下面的示例了Java继承特性:
其中Father类是父类,Son类是子类,Father类定义了成员变量a,b,子类Son也拥有a,b成员数据,在本例中还可访问(注意子类拥有父类成员并不代表就可访问,因为这里还访问修饰符的问题),而且扩充了成员变量c,Father定义setValue,printLine,printValue方法,子类也具有该方法的功能并能访问,还扩充了方法printStart,setValue(int,int,int),并对printValue方法 重新定义,称为重载。
classFather {
inta;
intb;
publicvoidprintLine(){
System.out.println("------------");
}
publicvoidsetValue(inta,intb){
this.a=a;
this.b=b;
}
publicvoidprintValue(){
System.out.println("a="+a+"\tb="+b);
}
}
classSonextendsFather{
intc;
publicvoidsetValue(inta,intb,intc){
super.setValue(a,b);
this.c=c;
}
publicvoidprintValue(){
System.out.println("a="+a+"\tb="+b+"\tc="+c);
}
publicvoidprintStar(){
System.out.println("************");
}
}
publicclassDemo1 {
publicstaticvoidmain(String[]args) {
Sonson=newSon();
son.setValue(1, 2, 3);
son.printLine();
son.printStar();
son.printValue();
}
}
运行程序,结果如下图所示: