面向对象的第二大特征:继承。
继承的主要作用在于,在已uoi基础上继续进行功能的扩充。
1.继承的实现
在Java中,继承使用extends关键字来实现,定义的语法如下:
class 子类 extends 父类
子类也称为派生类,父类也成为超类(Super class )
当发生了继承关系之后,子类可以直接继承父类的操作,可以实现代码的重用。子类最低也维持和父类相同的功能子类可以进行功能的扩充。
例如:扩充属性和方法。
2.继承的限制
子类对象在进行实例化前一定会首先实例化父类对象。
默认调用父类的构造方法后再调用子类构造方法,进行子类对象实例化。
eg:
通过观察代码和执行结果可以发现:子类对象实例化之前一定首先实例化父类对象。
注意:
一个子类只能继承一个父类
Java不允许多重继承,但允许多层继承。
在进行继承的时候,子类会继承父类的所有结构。(包括私有属性,构造方法,普通方法)。
继承时,所有的非私有属性属于显式继承(可以直接调用),所有的私有操作属于隐式继承(通过其他形式调用,例如setter或getter)。
class Person{
private String name;
public String getName(){
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Student extends Person{
public void fun() {
System.out.println(getName());
}
}
public class Test {
public static void main(String[] args) {
Student student = new Student();
student.setName("Selina");
System.out.println(student.getName());
student.fun();
}
}