Java的继承

30 阅读2分钟

继承

继承简介

概念:

java中的继承,是使用extends关键字在两个类之间建立的一种关系;

写法:

class  Fu{}

class  Zi extends Fu{}//表示Zi类继承Fu类;

在继承关系中,被其他类继承的类,叫做父类(超类),如本例中的Fu类;

继承其他类的类,叫做子类(派生类),如本例中的Zi类;

作用

继承中子类可以直接拥有父类的成员;

继承作用

此时发现两个类中存在大量重复代码,导致代码的复用性差。

要解决这种自身所有的属性和行为重复的问题,应该使用继承; 使用继承可以提高代码的复用性;

使用继承可以在两个类中建立一种关系;

使用注意:

1、继承中,父类的私有成员不能被子类继承;

2、继承中的两个类,应该有关系;

只有子类描述的事物 ,有父类描述的事物的特例的时候,才可以使用继承;

虽然在语法上,可以使用extends关键字在任意两个类之间建立继承关系,但是在开发中,只能是二者之间具有 “是” 的关系的时候才使用继承;

如果两个类不具有这种“是”的关系,那么就应该找他们共同的父类,然后将共同的信息放到共同的父类中,然后让两个类分别继承父类;

如:

鱼 和 苹果 , 不具有 “是” 的关系,但是有共同的父类,都属于食物,所以可以建立一个食物类,然后让他们分别继承食物类;

java类的继承特点

单一继承

就是一个类只能直接继承一个父类;

image.png

如果可以继承两个父类,那么当这两个父类中都具有共同的属性或行为时,在子类中调用,就不清楚到底会调用哪个(调用的不确定性)

多重继承

java中继承中,父类可以再继承其他类,叫做多重继承;

image.png

一个类只能直接继承一个父类,但是可以有多个子类;

一个类的父类还可以继承父类;

继承中的成员方法

子类直接拥有父类非私有成员方法

子类中可以定义和父类中同样的成员方法,直接调用的是子类中定义的函数;

如果子类中没有定义和父类中一样的成员变量和函数,直接调用,使用的是父类中定义的成员;

如果子类中定义了和父类中一样的成员变量和函数,直接调用,使用都是子类中定义的成员;

此时要使用父中定义的成员,需要通过super关键字调用;调用的格式是:

super.成员变量;

super.成员函数名(参数);