Java 类与接口详解

Java 是一种面向对象的编程语言,其中的最基本的组成单元是类和接口。在本文中,我们将详细介绍 Java 类和接口的概念、特性以及如何使用它们进行编程。

Java 类

类是 Java 中最基本的代码组织单位。一个类可以包含属性(数据)和方法(行为)。通过创建类的实例(对象),我们可以访问和操作类中的属性和方法。

定义类

在 Java 中,我们使用 class 关键字来定义一个类。以下是一个示例:

public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void sayHello() {
        System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
    }
}

上述代码定义了一个名为 Person 的类,该类具有 nameage 两个私有属性,以及一个公有构造方法和一个公有方法 sayHello。构造方法用于创建 Person 对象时初始化属性,而 sayHello 方法用于打印人物的信息。

创建类的实例

要使用类,我们需要创建类的实例。以下是创建 Person 类实例的示例代码:

Person person = new Person("Alice", 25);
person.sayHello();

上述代码创建了一个名为 personPerson 类实例,并调用了该实例的 sayHello 方法。

继承

继承是面向对象编程中的一个重要概念,允许我们创建一个新的类,并继承现有类的属性和方法。通过继承,我们可以实现代码的重用和扩展。

在 Java 中,我们使用 extends 关键字来实现继承。以下是一个示例:

public class Student extends Person {
    private int grade;

    public Student(String name, int age, int grade) {
        super(name, age);
        this.grade = grade;
    }

    public void study() {
        System.out.println("I am studying in grade " + grade + ".");
    }
}

上述代码定义了一个名为 Student 的类,该类继承了 Person 类,并添加了一个 grade 属性和一个 study 方法。

多态

多态是面向对象编程中的另一个重要概念,允许我们通过统一的接口来处理不同类的对象。在 Java 中,多态的实现方式是通过接口来实现的。

Java 接口

接口是一种包含一组抽象方法的类。接口定义了类应该具有的行为,但不提供具体的实现。类可以实现一个或多个接口,以实现某种行为。

定义接口

在 Java 中,我们使用 interface 关键字来定义一个接口。以下是一个示例:

public interface Drawable {
    void draw();
}

上述代码定义了一个名为 Drawable 的接口,该接口包含一个无返回值、无参数的 draw 方法。

实现接口

要实现一个接口,我们需要使用 implements 关键字。以下是一个实现 Drawable 接口的示例:

public class Circle implements Drawable {
    private double radius;

    public Circle(double radius) {
        this.radius = radius;
    }

    @Override
    public void draw() {
        System.out.println("Drawing a circle with radius " + radius);
    }
}

上述代码定义了一个名为 Circle 的类,该类实现了 Drawable 接口,并实现了 draw 方法。

接口的多重实现

一个类可以实现多个接口。以下是一个实现多个接口的示例:

public class Rectangle implements Drawable, Movable {
    private double width;
    private double height;

    public Rectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }

    @Override
    public void draw() {
        System.out.println("Drawing a rectangle with width " + width + " and height " + height);
    }

    @Override
    public void move(double dx, double dy) {
        System.out.println("Moving the rectangle by (" + dx + ", " + dy + ")");
    }
}

上述代码定义了