继承的基本关系
一,超类和子类
继承
先来了解一下继承,继承是对一个类的扩展,一个类继承了另一个类,也就是对另一个类的扩展,继承使用的关键字是extends,举一个例子,人类,Person类,每一个人都有姓名,身份证号,年龄等基本信息,在此基础上细分,又可以有各种职业,学生Student类,教师Teacher类,管理员Manager类,那么这些不同的职业可以继承Person类,在此基础上进行添加。
//一个简单的继承格式
public class Person{
public Person(){
}
public Person(String name){
this.name=name;
}
//其他方法
String name;
// //其他属性
}
public class Student extends Person{
public Student(){
for(int i=0;i<6;i++){
this.grade[i]=0;
}
}
public Student(double []grade){
int i=0;
for(double x:grade){
grade[i]=x;
i++;
if(i==6){
break;
}
}
}
//其他方法
//属性
double []grade;//成绩
//初始化块
{
grade=new double[6];
}
}
超类和子类
关于上面的程序,Person类就是Student类的超类,也叫作父类,基类,Student类就是子类,也叫派生类,不同的人有不同的习惯叫法,但是意思都一样。
二,继承的一些规定
- java的继承只有一种,属于公有继承,没有c++中的私有继承,保护继承
- java的继承中子类不能直接访问继承而来的私有域,当要进行赋值时要通过super关键字调用超类的构造函数,没有显示调用时会默认调用默认构造函数,当需要使用时需要通过super关键字调用这个私有域的访问器进行使用
- 可以重写超类中方法,但是要通过super语句调用