一:为什么需要继承
Java
中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是
现实世界错综复杂,事物之间可能会存在一些关联,那在设计程序是就需要考虑。
比如:
狗和猫,它们都是一个动物
。
使用
Java
语言来进行描述,就会设计出:
Dog.java
![](https://img-blog.csdnimg.cn/direct/25b169f4019b41eb959d265233c67b37.png)
Cat.java
![](https://img-blog.csdnimg.cn/direct/f4783dd7ec6841a8ae9a0e506e2c5714.png)
通过观察上述代码会发现,猫和狗的类中存在大量重复,相同的部分如下所示:
![](https://img-blog.csdnimg.cn/direct/a18a33e949e747cfb0e1ae7cfe6bb54c.png)
那能否将这些共性抽取呢?
面向对象思想中提出了继承的概念,专门用来进行共性抽取,实现代码复用
。
于是java中引入了继承这个概念。
二:继承概念
继承
(inheritance)
机制
:是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特 性
的基础上进行
扩展,增加新功能
,这样产生新的类,称
派生类
。继承呈现了面向对象程序设计的层次结构, 体现了
由简单到复杂的认知过程。继承主要解决的问题是:
共性的抽取,实现代码复用
。
例如:狗和猫都是动物,那么我们就可以将共性的内容进行抽取,然后采用继承的思想来达到共用。
于是可以写成下面这张图:
![](https://img-blog.csdnimg.cn/direct/73b61575b0e4488aaa6a82adb109c127.png)
上述图示中,
Dog
和
Cat
都继承了
Animal
类,其中:
Animal
类称为父类
/
基类或超类,
Dog
和
Cat
可以称为
Animal
的
子类
/
派生类,继承之后,子类可以复用父类中成员,子类在实现时只需关心自己新增加的成员即可。
从继承概念中可以看出继承最大的作用就是:实现代码复用。
三:继承语法
在
Java
中如果要表示类之间的继承关系,需要借助
extends
关键字,具体如下:
修饰符 class 子类 extends 父类 {// ...}
那么上述代码可以写成:
Animal.java
![](https://img-blog.csdnimg.cn/direct/ad674815e48a40339f6591450b31ee2b.png)
Cat.java
![](https://img-blog.csdnimg.cn/direct/8ec3a7ee160644e898f794bcd405414b.png)
![](https://img-blog.csdnimg.cn/direct/71474539a734465bb223c52b76fd85cb.png)
注意:
1.
子类会将父类中的成员变量或者成员方法继承到子类中了
2.
子类继承父类之后,必须要新添加自己特有的成员,体现出与基类的不同,否则就没有必要继承了