一.定义
- 为了达到代码的复用 ,子类/派生类 继承了父类/基类/超类,且子类继承了父类除构造方法外的所有东西.
- 基本语法:
class 子类 extends 父类 {
}
二.注意事项
- Java 中一个子类只能继承一个父类.
- 对于父类的 private 的字段和方法, 子类中是无法访问的.
- 父类只能访问自己的成员或方法,不能访问子类的.
- 如果要构造子类,要先构造父类.
三. protected 关键字
为了继承而用的关键字,继承关系中使用
// Animal.java
public class Animal {
protected String name;
public Animal(String name) {
this.name = name;
}
public void eat(String food) {
System.out.println(this.name + "正在吃" +food);
}
}
// Bird.java
public class Bird extends Animal {
public Bird(String name) {
super(name);
}
public void fly() {
// 对于父类的 protected 字段, 子类可以正确访问
System.out.println(this.name + "正在飞");
}
}
// Test.java 和 Animal.java 不在同一个 包 之中了.
public class Test {
public static void main(String[] args) {
Animal animal = new Animal("小动物");
System.out.println(animal.name); // 此时编译出错, 无法访问 name
}
}
- 访问权限包括四种:public, private, protected, 包访问权限
private: 类内部能访问, 类外部不能访问
包访问权限: 类内部能访问, 同一个包中的类可以访问, 其他类不能访问.
protected: 类内部能访问, 子类和同一个包中的类可以访问, 其他类不能访问.
public: 类内部和类的调用者都能访问.
四. final 关键字
- final 关键字也能修饰类, 此时表示被修饰的类为密封类,不能被继承.
- final 关键字的功能是限制类被继承,减少程序出错