一、继承的基本概念
继承是Java面向对象编程的核心概念之一,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用和扩展。
(一)定义与特点
继承通过extends
关键字实现,子类可以访问父类的公共和受保护成员。Java不支持多继承,即一个类只能继承一个父类,但可以通过接口实现多态。
class Animal {
String name;
int age;
public void eat() {
System.out.println("动物在吃东西");
}
}
class Dog extends Animal {
public void bark() {
System.out.println("狗在叫");
}
}
(二)构造函数的继承
子类构造函数可以调用父类构造函数,通过super
关键字实现。
class Animal {
String name;
public Animal(String name) {
this.name = name;
}
}
class Dog extends Animal {
public Dog(String name) {
super(name); // 调用父类构造函数
}
}
二、方法重写与多态
(一)方法重写
子类可以重写父类的方法,提供特定的实现。
class Animal {
public void makeSound() {
System.out.println("动物发出声音");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("汪汪汪");
}
}
(二)多态
多态允许父类引用指向子类对象,调用子类重写的方法。
public class PolymorphismExample {
public static void main(String[] args) {
Animal animal = new Dog();
animal.makeSound(); // 输出:汪汪汪
}
}
三、继承的高级特性
(一)抽象类
抽象类包含抽象方法(没有实现的方法),子类必须实现这些方法。
abstract class Shape {
abstract double getArea();
}
class Circle extends Shape {
double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
double getArea() {
return Math.PI * radius * radius;
}
}
(二)接口
接口定义了一组方法规范,类通过implements
实现接口。
interface Drawable {
void draw();
}
class Square implements Drawable {
@Override
public void draw() {
System.out.println("绘制正方形");
}
}
四、总结
继承是Java面向对象编程的重要特性,它通过extends
关键字实现,允许子类复用和扩展父类的功能。通过方法重写和多态,可以实现灵活的代码设计。抽象类和接口提供了更高的抽象层次,帮助我们构建更健壮的系统。希望本文的示例和讲解对您有所帮助,如果您在使用继承时有任何疑问,欢迎随时交流探讨!