当类与类之间有共有的属性时(比如男人女人都有年龄这个属性),可把共性部分提取出来,形成父类,通过继承的形式把类联系起来,与静态不同,静态成员是同类中不同对象的数据相同的属性(比如中国学生国籍都是中国,国籍是属性,不同对象的该属性数据一样)。
继承的特点:
1,提高代码的复用性。
2,让类与类之间产生关系,这是多态的基础。
基本格式:class name1 extends name2(name1是子类,name2是父类)
举例解释一下:
以工人和学生为例:
class Student
{
int age;
String name;
void study(){}
}
class Work
{
int age;
String name;
void work(){}
}
然而,学生和工人都是人,应此可以使用继承:
class Person
{
int age;
String name;
}
class Student extends Person
{
void study(){}
}
class Work extends Person
{
void work(){}
}
不难看出,使用继承可以大大减少代码长度,当具有共性的类较多时,能大大提高效率。
在Java语言中只支持单继承,不支持多继承(若支持多继承,当不同父类同时拥有相同名称的成员时,调用时会产生安全问题),但Java支持多层继承。
==========================================================================================================================
在继承中,除了出现extends关键字以外,还有一个关键字super。
super的作用是:当父类成员名称与子类的成员相同时,若子类的方法需要调用父类同名成员时使用super,格式:super.name,注意:父类同名成员不能被私有!!
举例如下:
class Fu
{
int num=4;
}
class Zi
{
int num=5;
public void show()
{
System.out.println(super.num+"->"+this.num);//this可以省略
}
}
//调用show结果:4—>5
this与super比较:this用于调用本类成员(不管是否私有),super用于调用父类非私有成员
顺便说一下,在继承时,若调用的成员只存在父类,那么在子类中无论用this,还是super,都是调用父类成员。
举例如下:
class Fu
{
int num=4;
}
class Zi
{
public void show()
{
System.out.println(this.num);//this可用super代替
}
}
//调用show结果:4