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