1.继承
1.1 什么是继承
当我们定义多个类时,许多属性和变量重复写会很麻烦,如果能够把它们相同的属性全部抽取出来,放在一个新的类中,让新的类与Dog
类和Bird
类产生联系,这样就不用在每个类中定义这些变量和方法,从而简化代码。
那么如何让他们产生联系,这里就要使用继承来完成。
我们定义一个Animal
类,把它们相同的属性放在Animal
类中,通过extends
关键字,将它们联系起来,这个行为就叫做继承,extends
的左边叫子类/派生类,右边叫父类/基类/超类。即Dog
和Bird
子类分别继承了Animal
父类。
1.2 为什么要继承
在java面向对象过程中,提出了继承的思想,专门把一些类的共性抽取出来,实现代码的复用。子类可以重复使用父类的成员变量和方法。![](https://i-blog.csdnimg.cn/direct/8853d88e04364ced9b47bdec0fc5ac49.png
1.3 父子类中成员变量相同/不相同
1.3.1 不相同
当父类和子类中定义的变量不相同时的访问形式。
1.3.2 相同
- 当父类和子类中有相同的变量时,优先访问子类的变量。
- 如果访问的变量子类自己有,优先访问自己的,若没有则访问父类继承下来的。
如果访问的成员自己有,但想访问父类变量,那么就需要用到super
关键字进行调用。
super.成员变量名
,访问父类的成员变量
super.成员方法名
,访问父类的成员方法
上面代码中用super.a
访问了父类中a的值,所以输出a=0
。