继承是面向对象的基本原则,主要目的是代码复用,减少代码的冗余,提高程序的拓展性。继承的关键字是extends,表示一个类继承了另一个类。具体格式如下:
public class UNStudent extends Student{
// 类体
}
表示UNStudent类继承了Student类。
继承在生活中也是广泛存在的,比如说孩子都会继承父母亲的一些长相和性格特征。在程序中的继承就是为了体现生活中的这种继承关系而产生的。子类继承父类后,父类中的所有属性和方法都被继承到子类中去了,但是不是所有的属性和方法都可以被子类调用。能调用的属性和方法有以下这些:
1.子类和父类在同一个包下时:
默认的,protected,public的属性和方法能被子类和对象的对象调用。
2.子类和父类在不同的包下时:
子类的对象能调用的属性和方法只有public.
在子类中能调用的属性和方法有protected和public.
Java中的访问修饰符
Java中使用访问修饰符来控制类、成员方法以及成员变量的访问权限,访问修饰符有以下四种:
Public 公开的,对外完全公开,只要在同一个项目中就可以使用。
Private 私有的,不对外公开,只有类本身可以使用。
Protected 受保护的,对子类及同一个包中的类公开。
默认的,没有访问修饰符,对同一个包中的类公开。
注意:访问修饰符是针对类和类的成员而言的,如果是局部变量的话,只对方法的内部可以被访问,所以是不能使用访问修饰符的。
方法重写
方法重写是指在子类中对父类中继承下来的一些方法给出一套新的执行代码,这一套新的代码要与父类中的方法方法名、返回值类型、参数个数和参数类型完全相同,如果方法名一样但别的有不同的话,就成了方法重载。子类在重写时,方法的访问修饰符可以大于或者等于父类方法的访问修饰符,不能小于。
//定义一个Student类
public class Student {
// 定义学习方法
public void study(){
System.out.println("该学生在学习,他的学分要加2分");
}
}
在UNStudent类中重写学习方法:
//定义一个大学生类,该类继承自学生类
public class UNStudent extends Student {
// 重写学习方法
public void study(){
System.out.println("这是另外一个学习方法");
}
}