Java, just a language (三)

来源:互联网 发布:2016access数据库教程 编辑:程序博客网 时间:2024/06/05 21:08

Java, just a language (三)

by 梦中浮云


!声明:如果您有意愿转载本文,请在文章醒目位置注明原文链接。


        这一篇是本系列的最后一部分了,写到这里已经到了类的外围,让我们一起来结束这场探索。

        其实,细心的读者会发现,我在第二部分结尾的故事里留了一个坑。哺乳纲伙食部的菜谱是空的!好吧,如果你忘了那个故事,就请前往第二部分看一遍。

        本着存在即合理的原则,我们来检验一下,空菜谱是否合理。哺乳纲势力是由三大军团组成的,所以哺乳纲这个组织是不真实存在的,仅仅是个名号。哺乳纲有战斗的方法,有防御的方法,有做饭的方法,但都是只挂个名字。到了上战场的时候,调用三大军团自己的战斗方法来开展战役就行了。

        我们前面提到过,继承就是公共的放在父类,独有的放在子类。如果没有公共的,那父类里面就是空的了。细化到方法的层面,子类有着名字相同的方法,但是内容完全不同,这时父类就只能有个同名的空方法了。给这种方法起个名字,就是抽象方法。方法都是抽象的了,方法所在的类自然就叫做抽象类。注意了,一个类里面只要有一个抽象方法,它就必须被声明为抽象的。

        类的抽象与否有一个专门的关键字表示,abstract。但方法就不需要了,根据抽象方法的定义,我们不写方法体就是了,也就是没有{…}这一部分。

        抽象类是不能被实例化的,地球上是不存在灵长目这个动物的。

        抽象类的抽象方法必须在其某级子类中实现。反过来想这个问题,所有的子类中都没用到这个方法,要之何用?既然父类里声明了它,那么在子类中就应当去实现它。你已经以哺乳纲的名义宣战了,结果下面的军团都不会战斗,这是多么搞笑的事。

 

        接口:一个不是类的无比完全的抽象类。

        如果一个抽象类里面的方法全都是抽象方法,那他应该被冠以接口之名。接口也有一个关键字,interface。记住,它和class是同级别的。

        唉,我想我有必要剖析一下,什么叫全都是抽象方法?我们知道,类里面有一个叫做构造函数的存在,这东西其实也是方法。全部都是抽象方法,自然也包括了构造函数。谨记,接口是没有构造函数的。

        接口没有构造函数,我们自然就无法继承它了,所以多了一个实现的概念,关键字为implements。使用方法和extends是一样的。

 

        类有一个封装的特性,本文不打算讲了。所以,本系列也就到此结束了。第一次接触Java的朋友,不用为了它看似复杂的内容而犯愁。找到了脉络,一切都会显得那么简单。

        Java,just a language!
1 0
原创粉丝点击