JAVA类全部继承于OBJECT,好像就是要解决继承混乱的问题。
至于抽象类和接口,个人觉得抽象类就像画画,先画个框架,再临摹框架画再添东西,接口好像链条上的配件,配件的规格给你了,你做个什么挂上去都可以。
我来给你举个例子:一个抽象的乐器类abstract Instrument.它里面有一个抽象的方法abstract void play();(提醒一下,没有方法体)。
然后有其它的几个不同的乐器(比如Wind、Percussion、Stringed)来继承了前面的乐器抽象类,你应该知道,继承一般要重写基类的方法并实现,所以Wind、Percussion、Stringed都需要去重写play方法。
比如Wind重写后是这样的public void paly() {System.out.println("这是Wind的play().")}。Percussion重写后是这样的public void paly() {System.out.println("这是Percussion的play().")}。Stringed重写后是这样的public void paly() {System.out.println("这是Stringed的play().")}。
你实例化类Wind、Percussion、Stringed的对象,它们的引用分别为W,P,S。
此时你这样调用W.play().play();S.play();
出来的结果分别是:这是Wind的play().这是Percussion的play().这是Stringed的play().
你看,这样就实现了多态。接口和抽象类有点类似,实现接口,然后去实现接口的中定义的方法。 |