继承综述
继承作为一个非常生活化的词汇,我们都比较容易理解。它描述的无非就是子从父那里自动获取到父的内容。
在面向对象编程当中,其实继承这个词汇的本质没有发生变化。它描述的是一种类与类之间的关系。子类通过继承机制自动拥有来自于父类的属性和行为,无需重新定义一次。
在Java当中要想实现继承也很简单,使用extends关键字即可。通过一个简单的例子,我们就可以看出来继承的效果,和使用的场景。
继承就是让子类自动具备父类的属性和行为,从而达到代码的复用性。
注意:不是只要分析出具备相同属性行为,我们就去做继承。必须要具备类与类之间有is-a关系,我们才会去做继承。
继承的细节
父类的哪些内容会被继承
1、父类中的属性会被继承;就算是私有属性也会被继承,只是不能被看到而已; 访问修饰符控制的是是否能够被直接看到操作到,而不是是否能被继承。
2、父类中的行为也会被继承,与属性是同样的道理;
3、父类的构造方法是不能被子类继承的;WHY? 3-1、构造方法的名字必须和类名保持一致;父类的构造方法名字是父类类名;子类构造方法是子类类名。如果构造方法能够被继承,那么说明子类里面有一个构造方法,但名字是父类的,这很明显语法矛盾了;
3-2、构造方法的作用是产生对象;父类构造方法产生父类对象,子类构造方法产生子类对象。如果子类通过继承拥有了父类的构造方法,那么说明子类拥有一个产生父类的方法,这很明显伦理不允许。
extends
extends这个单词的本意其实不是继承,它的本意是扩展。也就是说:子类 exten