在 Java 中,继承(Inheritance)是面向对象编程的重要特性,它允许一个类继承另一个类的属性和方法,从而实现代码的重用和扩展。
1.基本概念
- 父类(Super Class):被继承的类,包含基本的属性和方法。
- 子类(Sub Class):继承父类的类,扩展或修改父类的功能。
2.继承的语法
使用 extends 关键字实现继承
public class Parent {
public void display() {
System.out.println("Parent class");
}
}
public class Child extends Parent {
public void show() {
System.out.println("Child class");
}
}
3.方法重写
子类可以重写父类的方法,以提供具体的实现。重写的方法必须具有相同的方法名、返回类型和参数列表。
public class Parent {
public void display() {
System.out.println("Parent display");
}
}
public class Child extends Parent {
@Override
public void display() {
System.out.println("Child display");
}
}
4.构造函数
子类不会继承父类的构造函数,但可以通过 super()
调用父类的构造函数。
public class Parent {
public Parent() {
System.out.println("Parent constructor");
}
}
public class Child extends Parent {
public Child() {
super(); // 调用父类构造函数
System.out.println("Child constructor");
}
}
5.访问权限
子类可以访问父类的 public
和 protected
成员,但不能访问 private
成员。
public class Parent {
private int privateValue = 1;
protected int protectedValue = 2;
public int publicValue = 3;
}
public class Child extends Parent {
public void access() {
// System.out.println(privateValue); // 错误
System.out.println(protectedValue); // 可以访问
System.out.println(publicValue); // 可以访问
}
}
6.super关键字
super
用于访问父类的字段和方法。super()
用于调用父类的构造函数。
public class Parent {
public void show() {
System.out.println("Parent");
}
}
public class Child extends Parent {
public void show() {
super.show(); // 调用父类的 show 方法
System.out.println("Child");
}
}
7.单继承
Java 只支持单继承,即一个类只能直接继承一个父类。但一个类可以实现多个接口,实现多重继承的效果。
8.Object类
所有的 Java 类都隐式继承自 Object
类,它是所有类的根类。可以通过继承 Object
类获得一些基本的方法,如 toString()
, equals()
, hashCode()
等。