蓝杰学习之
——继承
听到“继承”二字,你会想到什么呢?有些人可能会想到继承上代的遗产,有些人可能会想到继承父母的基因,有的人还可能会想到继承祖辈的优良品德。但不论是什么,总是要从父代那里承接过来的。Java中的继承也是这样,只不过我们不叫父代,而是叫做父类。
现在我们定义两个类,一个是Father类,一个是Son类,让Son类继承Father类,那么,Son类就具有了Father类的属性和方法,可以直接调用其已有方法。一般类的继承,关键字是extends。用这个词想必Java工程师们是用了心思的。Extend的本意是“延伸,扩展”,如果单纯只是要表达“继承”的意思,那么选用“inherit”貌似更合适。之所以用“extend”,是因为,Son类不可能和Father类一模一样,这样也没有其存在的必要。它必定是在继承了父类的所有方法之余还有自己的新的属性和方法,是在父类的基础上延伸、扩展了一些方法出来。中国人选择把它翻译成“继承”,想是在国人心里,继承和发展是紧紧相连的,继承之后必定会发展吧。
继承还有一个关键字,就是在继承接口类的时候,用到implements。Implements的意思是“实施,执行,向……提供工具”,这样很好理解,因为接口类有其方法,但方法体是空的,要想使用接口类中的方法,就要有一个类来继承它,并重写里面的方法体,为它满血复活提供工具。这也就像是老板规定了任务,下属用自己的方式来实施和执行。
我目前用到的最多的继承,一是继承接口,二是继承JFrame。我原来并不十分理解继承JFrame的机理,总是靠死记格式。现在想来,其实不难,我们新建了一个MyFrame类extends JFrame类之后,要创建一个它的对象,然后调用一个showFrame()方法;在showFrame方法里,就可以直接调用JFrame类中所有的窗体设置的方法了。
继承机制可以很好的减少代码的冗余,我们可以写一些自定义的类,其中是我们做一个project经常需要使用的方法,这样在我们写代码时,就不用一遍遍地写重复的内容,只需要继承一下,然后直接调用就可以了。