7.2 继承语法

---恢复内容开始---

  在创建一个类时,这个类总是在继承(Object),因此,除非已经明确指出要从其他类进行继承,否则就是隐式的在从Java标准根Object继承。

  在继承过程中,需要先声明"新类与旧类相似",新类extends旧类,当这么做时,会自动获取基类中的所有方法和字段。

示例:

  

 

 

  为了继承,一般情况下,都是将所有成员变量全部定义为private,将所有方法全部定义为public

  由于Detergent是由关键字extends从Cleanser导出的,所以它可以在Detergent中自动获得这些

方法。因此可以将继承看做对类的复用。

  正如上面scrub()方法中,使用基类的方法以及对它进行修改是可行的。但是如果想要在scrub()中

再次调用父类的scrub(),是做不到的,这样就会产生递归。所以这里可以使用super关键字,进行父类

方法的调用。

  在继承中,并不是一定要使用基类的方法,也可以为子类进行增加方法,比如上面的foam(),在Detergent

中,Detergent对象除了可以调用父类中所有的方法,也可以调用子类中的foam()方法

  初始化父类

    从外部看来,子类其实就是一个与父类具有相同方法的新类,或许还会有一些额外的方法和字段。但继承并不是直接复制父类的方法。当创建一个子类对象时,该对象包

   含了一个父类的子对象,这个子对象与用父类直接创建对象是一样的。二者之间的区别就是后者来自于外部,前者则是被包装进子类对象中。

 

 

posted @ 2017-04-25 00:15  不再孤单丶mata陈  阅读(296)  评论(0编辑  收藏  举报